Module:ProfessionList: Difference between revisions

m
profit per xp
No edit summary
m (profit per xp)
(5 intermediate revisions by the same user not shown)
Line 1:
local currency = require('Module:Currency')
local search = require('Module:RecipeTreeSearch')
 
local p = {}
Line 101 ⟶ 102:
end
end
-- if none of the pages had recipes of activities, skip the rest of this function
if recipes == nil or recipes[1] == nil then
return nil
end
Line 106 ⟶ 112:
local output = {}
-- screen using screenfunctionscreenFunction
for _, item in ipairs(recipes) do
if screenfunctionscreenFunction(item) then
table.insert(output,item)
end
end
-- if all of the results were screened, skip the rest of this function
if output == nil or output[1] == nil then
return nil
end
 
Line 127 ⟶ 138:
return item1.level < item2.level
end)
-- perform a number of useful calculations on the data that are widely useful
-- like cost of materials, profit of products, recipe tree search
for _,item in ipairs(output) do
item.product = item.output[1].name or ''
-- perform the full recipe tree search on the product
local fullRecipe = search.main(item.product)
-- overwrite any parameters from the original recipe with their counterparts from the full recipe
-- when product is nil, no data is overwritten
for key,value in pairs(fullRecipe) do
item[key] = value
end
-- include the price of selling the product
item.sellPrice = search.getShopSellPrice(item.product)
item.profit = item.buyPrice and item.sellPrice and item.sellPrice - item.buyPrice
item.profitPerXP = item.profit and item.xp and item.profit / item.xp
end
return output
Line 132 ⟶ 165:
end
 
function p.one_column_image_text(sort,materials)
local materialCell = mw.html.create('td')
 
for _, mat in ipairs(item.materials) do
materialCell:wikitext(mat.quantity .. ' &times; [[File:' .. mat.name .. '.png|18px|link=' .. mat.name .. ']] [[' .. mat.name .. ']]<br>')
end
return materialCell
end
 
function p.two_column_image_text(sort,image,text,link)
return mw.html.create('td')
:css{ ['border-right'] = '0', ['text-align'] = 'right', ['max-width'] = '100px' }
:attr{ ['data-sort-value'] = sort }
:wikitext(' [[' .. image .. '|link=' .. link .. '|30x30px]]')
:done()
:tag('td')
:addClass('plinkt-link no-border')
:wikitext('[[' .. link .. '|' .. text ..']]')
:done()
end
 
function p.three_column_image_text(sort,quantity,image,text,link)
return mw.html.create('td')
:css{ ['border-right'] = '0', ['padding-right'] = '0', ['text-align'] = 'right' }
:attr{ ['data-sort-value'] = sort }
:wikitext(quantity .. ' &times;')
:done()
:tag('td')
:addClass('plinkt-image no-border')
:css{ ['border-left'] = '0', ['padding-left'] = '0' }
:wikitext('[[' .. image .. '|link=' .. link .. '|30px]]')
:done()
:tag('td')
:addClass('plinkt-link no-border')
:wikitext('[[' .. link .. '|' .. text .. ']]')
:done()
end
 
return p
11,305

edits