Editing Module:Sandbox/User:Alsang/PassivePotionList
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 2: | Line 2: | ||
local param = require( 'Module:Paramtest' ) |
local param = require( 'Module:Paramtest' ) |
||
local currency = require('Module:Currency') |
local currency = require('Module:Currency') |
||
local lang = mw.getContentLanguage() |
|||
require("Module:Mw.html extension") |
|||
Line 17: | Line 15: | ||
'? #- = name', |
'? #- = name', |
||
'?Uses item #- = reagents', |
'?Uses item #- = reagents', |
||
'?Value |
'?Value = sell', |
||
'?Activity coins = coins', |
'?Activity coins = coins', |
||
'?Activity XP = XP', |
'?Activity XP = XP', |
||
Line 30: | Line 28: | ||
return p.displayTable(results) |
return p.displayTable(results) |
||
--for debugging |
|||
--return '<pre>'..mw.text.jsonEncode(results, mw.text.JSON_PRETTY)..'</pre>' |
--return '<pre>'..mw.text.jsonEncode(results, mw.text.JSON_PRETTY)..'</pre>' |
||
Line 36: | Line 33: | ||
-- makes the html for the cells containing currency directly, no tags needed |
-- makes the html for the cells containing currency directly, no tags needed |
||
-- flag is for if the number should not be known, replaces with zero |
|||
local function currency_cell(amount) |
|||
local function currency_cell(amount,flag) |
|||
return currency._cell(amount, { html = 'yes' }) |
|||
local a = {} |
|||
if flag then |
|||
a = currency._cell(amount, { html = 'yes' }) |
|||
else |
|||
a = currency._cell(0, { html = 'yes' }) -- replace this with blank, if I can figure out how to |
|||
end |
|||
return a |
|||
end |
end |
||
Line 80: | Line 84: | ||
-- flags for if data values should be shown |
-- flags for if data values should be shown |
||
item.hasLvl = param.has_content(item.lvl) |
|||
item.hasBuy = param.has_content(item.buy) |
item.hasBuy = param.has_content(item.buy) |
||
item.hasSell = param.has_content(item.sell) |
item.hasSell = param.has_content(item.sell) |
||
Line 91: | Line 94: | ||
item.profit = sell - buy |
item.profit = sell - buy |
||
else |
else |
||
item.profit = (sell - buy)*0.005 -- passive potions all have quantity 0.005 per action |
item.profit = (sell - buy )*0.005 -- passive potions all have quantity 0.005 per action |
||
end |
end |
||
Line 113: | Line 116: | ||
item.profitPerHour = math.floor(item.profit * item.potionPerHour) |
item.profitPerHour = math.floor(item.profit * item.potionPerHour) |
||
-- XP/KP strings, if the requisite data isnt there then display "unknown" |
|||
if item.hasXP then |
|||
item.XP = item.XP -- format to include commas |
|||
else |
|||
item.XP = 'Unknown' |
|||
end |
|||
if item.hasXP and item.hasDuration then |
|||
item.XPPerHour = item.XPPerHour -- format to include commas |
|||
else |
|||
item.XPPerHour = 'Unknown' |
|||
end |
|||
end |
end |
||
Line 167: | Line 184: | ||
-- if its not ebsworth work, need a list of reagents |
-- if its not ebsworth work, need a list of reagents |
||
local reagentCell = '' |
local reagentCell = '' |
||
if |
if item.variant=='Ebsworth Work' then |
||
reagentCell = 'N/A' |
|||
else |
|||
-- need to generate the text for the reagent cell before starting the row |
-- need to generate the text for the reagent cell before starting the row |
||
for j, reagent in ipairs(item.reagents) do |
for j, reagent in ipairs(item.reagents) do |
||
reagentCell = reagentCell .. '[[File:' .. reagent .. '.png|30px|link=' .. reagent .. ']] [[' .. reagent .. ']]<br>' |
reagentCell = reagentCell .. '[[File:' .. reagent .. '.png|30px|link=' .. reagent .. ']] [[' .. reagent .. ']]<br>' |
||
end |
end |
||
end |
end |
||
out |
out |
||
:tag('tr') |
:tag('tr') |
||
:tag('td') |
:tag('td') |
||
:css{ ['text-align'] = 'center' } |
|||
:IF(item.hasBuy) |
|||
:wikitext(item.lvl) |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext(item.lvl) |
|||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:END() |
|||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
:wikitext('[[File:' .. item.name .. '.png|30px|link=' .. item.name .. ']] [[' .. item.name .. ']]') |
:wikitext('[[File:' .. item.name .. '.png|30px|link=' .. item.name .. ']] [[' .. item.name .. ']]') |
||
:done() |
:done() |
||
:IF(not(item.variant=='Ebsworth Work')) |
|||
:tag('td') |
|||
:wikitext(reagentCell) |
|||
:done() |
|||
:IF(item.hasBuy) |
|||
:wikitext(currency_cell(item.buy)) |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:IF(item.hasSell) |
|||
-- I cannot for the life of me figure out why, |
|||
-- but if I put item.sell directly into this function it claims it has value nil |
|||
-- it works for other functions to display it directly |
|||
-- so here is the workaround I guess |
|||
:wikitext(currency_cell(item.buy+200*item.profit)) |
|||
--:wikitext(currency_cell(item.sell)) |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-na') |
|||
:attr{ colspan = '21' } |
|||
:wikitext('N/A') |
|||
:done() |
|||
:END() |
|||
:IF(item.hasProfit) |
|||
:wikitext(currency_cell(item.profit)) |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:IF(item.hasProfit and item.hasDuration) |
|||
:wikitext(currency_cell(item.profitPerHour)) |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:tag('td') |
:tag('td') |
||
: |
:wikitext(reagentCell) |
||
:wikitext(item.XP) |
|||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:END() |
|||
:done() |
:done() |
||
:wikitext(currency_cell(item.buy,item.hasBuy)) |
|||
:wikitext(currency_cell(item.sell,item.hasSell)) |
|||
:wikitext(currency_cell(item.profit,item.hasProfit)) |
|||
:wikitext(currency_cell(item.profitPerHour,item.hasProfit and item.hasDuration)) |
|||
:tag('td') |
:tag('td') |
||
: |
:wikitext(item.XP) |
||
:wikitext(lang:formatNum(tonumber(item.XPPerHour))) |
|||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:END() |
|||
:done() |
:done() |
||
:tag('td') |
|||
: |
:wikitext(item.XPPerHour) |
||
:done() |
|||
:wikitext(currency_cell(item.profitPerXP)) |
|||
:wikitext(currency_cell(item.profitPerXP,item.hasXP and item.hasProfit)) |
|||
:ELSE() |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:done() |
:done() |
||