Module:Sandbox/User:Alsang/PassivePotionList: Difference between revisions

add it table classes to differentiate NA data from unknown data
(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:
'? #- = name',
'?Uses item #- = reagents',
'?Value #- = sell',
'?Activity coins = coins',
'?Activity XP = XP',
Line 28:
return p.displayTable(results)
--for debugging
--return '<pre>'..mw.text.jsonEncode(results, mw.text.JSON_PRETTY)..'</pre>'
 
Line 33 ⟶ 34:
 
-- 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
 
Line 84 ⟶ 78:
-- flags for if data values should be shown
item.hasLvl = param.has_content(item.lvl)
item.hasBuy = param.has_content(item.buy)
item.hasSell = param.has_content(item.sell)
Line 94 ⟶ 89:
item.profit = sell - buy
else
item.profit = (sell - buy )*0.005 -- passive potions all have quantity 0.005 per action
end
Line 116 ⟶ 111:
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
 
Line 184 ⟶ 165:
-- if its not ebsworth work, need a list of reagents
local reagentCell = ''
if not(item.variant=='Ebsworth Work') then
reagentCell = 'N/A'
else
-- need to generate the text for the reagent cell before starting the row
for j, reagent in ipairs(item.reagents) do
reagentCell = reagentCell .. '[[File:' .. reagent .. '.png|30px|link=' .. reagent .. ']] [[' .. reagent .. ']]<br>'
end
end
out
:tag('tr')
:tag('td')
:IF(item.hasBuy)
:css{ ['text-align'] = 'center' }
:wikitext(item.lvl)
:ELSE()
:addClass('table-bg-grey')
:wikitext('unknown')
:END()
:done()
:tag('td')
:wikitext('[[File:' .. item.name .. '.png|30px|link=' .. item.name .. ']] [[' .. item.name .. ']]')
: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')
:wikitextIF(reagentCellitem.hasXP)
:wikitext(item.XP)
:ELSE()
:addClass('table-bg-grey')
:wikitext('unknown')
:END()
: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')
:wikitextIF(item.XPhasXP and item.hasDuration)
:wikitext(item.XPPerHour)
:ELSE()
:addClass('table-bg-grey')
:wikitext('unknown')
:END()
:done()
:tag('td')
:wikitextIF(item.XPPerHourhasXP 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()
960

edits