Module:SCValue: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 5: Line 5:
local Items = require('Module:Items')
local Items = require('Module:Items')
local Common = require('Module:Common')
local Common = require('Module:Common')
local Number = require('Module:Number')
local Icons = require('Module:Icons')
local Debug = require('Module:Debug')
local Debug = require('Module:Debug')


Line 64: Line 66:


local function getMostProfitablePurchases(amount)
local function getMostProfitablePurchases(amount)
amount = tonumber(amount) or 1
amount = tonumber(amount)
amount = math.max(amount, 1)
amount = math.max(amount, 1)
Line 85: Line 87:
table.sort(data, function(a, b) return a.GPPerSC > b.GPPerSC end)
table.sort(data, function(a, b) return a.GPPerSC > b.GPPerSC end)


-- Keep most profitable entries only
-- Keep top x most profitable entries only
local entries = {}
if amount ~= nil then
for i = 1, math.min(#data, amount) do
local entries = {}
table.insert(entries, data[i])
for i = 1, math.min(#data, amount) do table.insert(entries, data[i]) end
return entries
end
end
return entries
return data
end
end


Line 99: Line 102:
function p._getSCItemProfits(amount)
function p._getSCItemProfits(amount)
local purchases = getMostProfitablePurchases(amount)
local purchases = getMostProfitablePurchases(amount)
Debug.log(purchases)
 
local html = mw.html.create('table')
:addClass('wikitable sortable stickyHeader')
html:tag('tr')
:tag('th'):attr('colspan', 2)
  :wikitext('Purchase')
:tag('th'):wikitext('Cost')
:tag('th'):wikitext('Requirements')
:tag('th'):wikitext('GP Value')
:tag('th'):wikitext('GP per SC')
for _, v in pairs(purchases) do
local purchase =  v.Purchase
local name = Common.getPurchaseName(purchase)
local expansionIcon = Shop._getPurchaseExpansionIcon(purchase)
local costs = Shop.getCostString(purchase.cost, false)
html:tag('tr')
:tag('td'):addClass('table-img')
  :wikitext(Common.getPurchaseIcon({purchase, notext=true, size='50'}))
:tag('td'):attr('data-sort-value', name)
  :wikitext(expansionIcon)
  :wikitext(Common.getPurchaseIcon({purchase, noicon=true}))
:tag('td'):attr('data-sort-value', v.SCCost)
  :css('text-align', 'right')
  :wikitext(costs)
:tag('td'):wikitext(Common.getRequirementString(purchase.purchaseRequirements, 'None'))
:tag('td'):attr('data-sort-value', v.GPValue)
  :css('text-align', 'right')
  :wikitext(Icons.GP(v.GPValue))
:tag('td'):attr('data-sort-value', v.GPPerSC)
  :css('text-align', 'right')
  :wikitext(Icons.GP(Number.autoround(v.GPPerSC)))
end
return tostring(html)
end
end


Line 112: Line 151:


function p.test()
function p.test()
p._getSCItemProfits(1)
return p._getSCItemProfits(1)
Debug.log(getPurchase('Mystic Lantern'))
 
--mw.log(p.getSCValue(item))
--mw.log(p.getSCValue(item))
end
end


return p
return p
918

edits