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 )*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 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')
:wikitext(reagentCell)
: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')
:wikitext(item.XP)
:IF(item.hasXP and item.hasDuration)
:wikitext(item.XPPerHour)
:ELSE()
:addClass('table-bg-grey')
:wikitext('unknown')
:END()
:done()
:done()
:tag('td')
:wikitext(item.XPPerHour)
: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()