Anonymous

Module:Shop: Difference between revisions

From Melvor Idle
161 bytes removed ,  22 April 2021
Added p.getPurchases for use in the ModifierTables module I'm working on
(Added qty to getItemSourceArray/getItemCostArray to save time)
(Added p.getPurchases for use in the ModifierTables module I'm working on)
(One intermediate revision by one other user not shown)
Line 8: Line 8:
local Constants = require('Module:Constants')
local Constants = require('Module:Constants')
local Areas = require('Module:CombatAreas')
local Areas = require('Module:CombatAreas')
--Cape of Completion is a special purchase that has to be spoofed since it's not in the code
function p.getCapeOfCompletionPurchase()
  local item = Items.getItem('Cape of Completion')
  local purchase = { category = 'Skillcape', id = -1}
  purchase.name = 'Cape of Completion'
  purchase.description = item.description
  purchase.cost = {gp = item.buysFor}
  purchase.unlockRequirements = {text = '100% Completion Log', items = {}}
  purchase.contains = {items = {{item.id, 1}}}
  return purchase
end


function p.processPurchase(category, purchaseID)
function p.processPurchase(category, purchaseID)
Line 90: Line 76:
       table.insert(reqArray, Icons.Icon({purchase.name, type=(isUpgrade and 'upgrade' or 'item')})..' Purchased')
       table.insert(reqArray, Icons.Icon({purchase.name, type=(isUpgrade and 'upgrade' or 'item')})..' Purchased')
     end
     end
  end
  if reqs.completionPercentage ~= nil then
    table.insert(reqArray, tostring(reqs.completionPercentage) .. '% Completion Log')
   end
   end


Line 182: Line 172:
   end
   end


   if itemID == 903 then --Special Cape of Completion thing
   return purchaseArray
    table.insert(purchaseArray, p.getCapeOfCompletionPurchase())
end
 
function p.getPurchases(checkFunc)
  local purchaseList = {}
  for category, purchaseArray in Shared.skpairs(ShopData.Shop) do
    for i, purchase in Shared.skpairs(purchaseArray) do
      if checkFunc(purchase) then
        table.insert(purchaseList, p.processPurchase(category, i - 1))
      end
    end
   end
   end
 
   return purchaseList
   return purchaseArray
end
end