2,875
edits
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) | 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 | ||
local entries = {} | |||
for i = 1, math.min(#data, amount) do table.insert(entries, data[i]) end | |||
return entries | |||
end | end | ||
return | return data | ||
end | end | ||
Line 99: | Line 102: | ||
function p._getSCItemProfits(amount) | function p._getSCItemProfits(amount) | ||
local purchases = getMostProfitablePurchases(amount) | local purchases = getMostProfitablePurchases(amount) | ||
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) | ||
--mw.log(p.getSCValue(item)) | --mw.log(p.getSCValue(item)) | ||
end | end | ||
return p | return p |
edits