Editing Module:ProfessionList
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
local currency = require('Module:Currency') |
local currency = require('Module:Currency') |
||
local search = require('Module:RecipeTreeSearch') |
|||
local p = {} |
local p = {} |
||
Line 102: | Line 101: | ||
end |
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 |
end |
||
Line 112: | Line 106: | ||
local output = {} |
local output = {} |
||
-- screen using |
-- screen using screenfunction |
||
for _, item in ipairs(recipes) do |
for _, item in ipairs(recipes) do |
||
if |
if screenfunction(item) then |
||
table.insert(output,item) |
table.insert(output,item) |
||
end |
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 |
end |
||
Line 138: | Line 127: | ||
return item1.level < item2.level |
return item1.level < item2.level |
||
end) |
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 |
|||
local sell = search.getShopSellPrice(item.product) |
|||
local qty = item.output[1].quantity |
|||
item.sellPrice = sell and qty and sell * qty |
|||
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 |
return output |
||
Line 167: | Line 132: | ||
end |
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 .. ' × [[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 .. ' ×') |
|||
: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 |
return p |