Module:Sandbox/User:Alsang/PassivePotionList: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(allow both passive potions and ebsworth work to appear on the same table) |
(add it table classes to differentiate NA data from unknown data) |
||
Line 15: | Line 15: | ||
'? #- = name', |
'? #- = name', |
||
'?Uses item #- = reagents', |
'?Uses item #- = reagents', |
||
'?Value = sell', |
'?Value #- = sell', |
||
'?Activity coins = coins', |
'?Activity coins = coins', |
||
'?Activity XP = XP', |
'?Activity XP = XP', |
||
Line 28: | 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 33: | Line 34: | ||
-- makes the html for the cells containing currency directly, no tags needed |
-- makes the html for the cells containing currency directly, no tags needed |
||
local function currency_cell(amount) |
|||
-- flag is for if the number should not be known, replaces with zero |
|||
return currency._cell(amount, { html = 'yes' }) |
|||
local function currency_cell(amount,flag) |
|||
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 84: | Line 78: | ||
-- 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 94: | Line 89: | ||
item.profit = sell - buy |
item.profit = sell - buy |
||
else |
else |
||
item.profit = (sell - buy |
item.profit = (sell - buy)*0.005 -- passive potions all have quantity 0.005 per action |
||
end |
end |
||
Line 116: | Line 111: | ||
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 184: | Line 165: | ||
-- 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 item.variant=='Ebsworth Work' then |
if not(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') |
||
:IF(item.hasBuy) |
|||
:css{ ['text-align'] = 'center' } |
|||
:wikitext(item.lvl) |
:wikitext(item.lvl) |
||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
: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' } |
|||
: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' } |
|||
: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' } |
|||
: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' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:tag('td') |
:tag('td') |
||
: |
:IF(item.hasXP) |
||
:wikitext(item.XP) |
|||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
: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') |
||
: |
:IF(item.hasXP and item.hasDuration) |
||
:wikitext(item.XPPerHour) |
|||
:ELSE() |
|||
:addClass('table-bg-grey') |
|||
:wikitext('unknown') |
|||
:END() |
|||
:done() |
:done() |
||
:IF(item.hasXP and item.hasProfit) |
|||
:wikitext(currency_cell(item.profitPerXP)) |
|||
:done() |
|||
:ELSE() |
|||
:wikitext(currency_cell(item.profitPerXP,item.hasXP and item.hasProfit)) |
|||
:tag('td') |
|||
:addClass('table-bg-grey') |
|||
:attr{ colspan = '10' } |
|||
:wikitext('unknown') |
|||
:done() |
|||
:END() |
|||
:done() |
:done() |
||