Mercurial > wow > itemauditor
comparison Modules/Crafting.lua @ 156:d108b0112be3
I removed all of the vellums that were removed from the game. This also allowed me to make the one remaining vellum count toward the materials required to craft a scroll.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Fri, 10 Dec 2010 00:48:20 -0800 |
parents | 613fd4bc6999 |
children | fbfd9dfa6d2b |
comparison
equal
deleted
inserted
replaced
155:802abe9b0b4c | 156:d108b0112be3 |
---|---|
9 local validateMoney = ItemAuditor.validateMoney | 9 local validateMoney = ItemAuditor.validateMoney |
10 local parseMoney = ItemAuditor.parseMoney | 10 local parseMoney = ItemAuditor.parseMoney |
11 | 11 |
12 local realData = {} | 12 local realData = {} |
13 local nameMap = nil | 13 local nameMap = nil |
14 | |
15 local vellumLevelMap = { | |
16 [38682] = 37602, -- Armor Vellum => Armor Vellum II | |
17 [37602] = 43145, -- Armor Vellum II => Armor Vellum III | |
18 [39349] = 39350, -- Weapon Vellum => Weapon Vellum II | |
19 [39350] = 43146, -- Weapon Vellum II => Weapon Vellum III | |
20 } | |
21 | 14 |
22 function Crafting:OnInitialize() | 15 function Crafting:OnInitialize() |
23 self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") | 16 self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") |
24 end | 17 end |
25 | 18 |
285 | 278 |
286 --[[ | 279 --[[ |
287 When enchanting UseContainerItem seems to be protected, so the enchants | 280 When enchanting UseContainerItem seems to be protected, so the enchants |
288 have to be done one at a time. | 281 have to be done one at a time. |
289 ]] | 282 ]] |
290 local function useVellum(vellumID, idealVellum) | 283 local function useVellum(vellumID) |
291 for bagID = 0, NUM_BAG_SLOTS do | 284 for bagID = 0, NUM_BAG_SLOTS do |
292 for slotID = 0, GetContainerNumSlots(bagID) do | 285 for slotID = 0, GetContainerNumSlots(bagID) do |
293 local link = GetContainerItemLink(bagID, slotID) | 286 local link = GetContainerItemLink(bagID, slotID) |
294 local id = Utils.GetItemID(link); | 287 local id = Utils.GetItemID(link); |
295 if id == vellumID then | 288 if id == vellumID then |
296 if idealVellum then | |
297 ItemAuditor:Print("Using %s instead of %s.", | |
298 select(2, GetItemInfo(vellumID)), | |
299 select(2, GetItemInfo(idealVellum)) | |
300 ) | |
301 end | |
302 UseContainerItem(bagID, slotID) | 289 UseContainerItem(bagID, slotID) |
303 return | 290 return |
304 end | 291 end |
305 end | 292 end |
306 end | |
307 if vellumLevelMap[vellumID] then | |
308 return useVellum(vellumLevelMap[vellumID], idealVellum or vellumID) | |
309 end | 293 end |
310 end | 294 end |
311 | 295 |
312 btnProcess:SetScript("OnClick", function (self, button, down) | 296 btnProcess:SetScript("OnClick", function (self, button, down) |
313 local data = ItemAuditor:GetCraftingRow(1) | 297 local data = ItemAuditor:GetCraftingRow(1) |
318 CastSpellByName(data.tradeskillName) | 302 CastSpellByName(data.tradeskillName) |
319 end | 303 end |
320 | 304 |
321 local queue = data.queue | 305 local queue = data.queue |
322 local vellumID = nil | 306 local vellumID = nil |
323 _, _, _, _, altVerb = GetTradeSkillInfo(data.tradeSkillIndex) | 307 local altVerb = select(5, GetTradeSkillInfo(data.tradeSkillIndex)) |
324 if altVerb == 'Enchant' and LSW.scrollData[data.recipeID] ~= nil then | 308 if altVerb == 'Enchant' then |
325 vellumID = LSW.scrollData[data.recipeID]["vellumID"] | 309 vellumID = 38682 |
326 queue = 1 | 310 queue = 1 |
327 end | 311 end |
328 ItemAuditor:Print('Crafting %sx%s', data.link, queue) | 312 ItemAuditor:Print('Crafting %sx%s', data.link, queue) |
329 DoTradeSkill(data.tradeSkillIndex, queue) | 313 DoTradeSkill(data.tradeSkillIndex, queue) |
330 if vellumID then | 314 if vellumID then |
462 | 446 |
463 | 447 |
464 | 448 |
465 local tableData = {} | 449 local tableData = {} |
466 function ItemAuditor:UpdateCraftingTable() | 450 function ItemAuditor:UpdateCraftingTable() |
467 if LSW == nil then | |
468 self:Print("This feature requires LilSparky's Workshop.") | |
469 return | |
470 end | |
471 if GetAuctionBuyout ~= nil then | 451 if GetAuctionBuyout ~= nil then |
472 elseif AucAdvanced and AucAdvanced.Version then | 452 elseif AucAdvanced and AucAdvanced.Version then |
473 else | 453 else |
474 self:Print("This feature requires Auctionator, Auctioneer, AuctionLite, or AuctionMaster.") | 454 self:Print("This feature requires Auctionator, Auctioneer, AuctionLite, or AuctionMaster.") |
475 return | 455 return |
493 local itemLink = GetTradeSkillItemLink(i) | 473 local itemLink = GetTradeSkillItemLink(i) |
494 local itemId = Utils.GetItemID(itemLink) | 474 local itemId = Utils.GetItemID(itemLink) |
495 local vellumID = nil | 475 local vellumID = nil |
496 | 476 |
497 --Figure out if its an enchant or not | 477 --Figure out if its an enchant or not |
498 _, _, _, _, altVerb = GetTradeSkillInfo(i) | 478 local altVerb = select(5, GetTradeSkillInfo(i)) |
499 if LSW.scrollData[itemId] ~= nil and altVerb == 'Enchant' then | 479 if LSW and LSW.scrollData[itemId] ~= nil and altVerb == 'Enchant' then |
500 -- Ask LSW for the correct scroll | 480 -- Ask LSW for the correct scroll |
501 local sd = LSW.scrollData[itemId] | 481 itemId = LSW.scrollData[itemId] |
502 itemId = sd.scrollID | 482 vellumID = 38682 |
503 vellumID = sd.vellumID | |
504 end | 483 end |
505 | 484 |
506 local recipeLink = GetTradeSkillRecipeLink(i) | 485 local recipeLink = GetTradeSkillRecipeLink(i) |
507 local stackSize = 1 | 486 local stackSize = 1 |
508 if recipeLink ~= nil and itemId ~= nil then | 487 if recipeLink ~= nil and itemId ~= nil then |
598 numOwned[reagent.link] = ItemAuditor:GetItemCount(ItemAuditor:GetIDFromLink(reagent.link)) | 577 numOwned[reagent.link] = ItemAuditor:GetItemCount(ItemAuditor:GetIDFromLink(reagent.link)) |
599 end | 578 end |
600 data.haveMaterials = min(data.haveMaterials, floor(numOwned[reagent.link] / needEach)) | 579 data.haveMaterials = min(data.haveMaterials, floor(numOwned[reagent.link] / needEach)) |
601 numOwned[reagent.link] = numOwned[reagent.link] - reagent.count | 580 numOwned[reagent.link] = numOwned[reagent.link] - reagent.count |
602 | 581 |
603 -- Vellums count in cost, but not against whether or not you have the mats. | 582 if numOwned[reagent.link] < 0 then |
604 -- I chose to do it this way because you can use a higher level of vellum | |
605 -- and I'm not sure the best way to determine cost and materials in that situation. | |
606 if numOwned[reagent.link] < 0 and not vellumLevelMap[reagent.itemID] then | |
607 reagent.need = min(reagent.count, abs(numOwned[reagent.link])) | 583 reagent.need = min(reagent.count, abs(numOwned[reagent.link])) |
608 end | 584 end |
609 end | 585 end |
610 data.haveMaterials = max(0, data.haveMaterials) | 586 data.haveMaterials = max(0, data.haveMaterials) |
611 end | 587 end |