Module:SoulUnlock: Difference between revisions

Jump to navigation Jump to search
Sur (talk | contribs)
m RequiredGold > RequiredSouls
Sur (talk | contribs)
m write_table init
Line 98: Line 98:
last_value = accumulated_data[last_index][soul_unlock_key]
last_value = accumulated_data[last_index][soul_unlock_key]
return last_value
return last_value
end
function to_tick(bool)
if bool == nil or not bool then
return ''
else
return '{{Tick}}'
end
end
function p.write_table(frame)
local debug_mode = frame.args['debug_mode']
if debug_mode == nil then debug_mode = false end
local ret = ''
-- Add header record, will be soul + each other record twice
local required_souls_header = '<th>' .. p.localize('RequiredSouls') .. '</th>'
local non_souls_tr = ''
for su_key, lang_key in pairs(localization_map) do
if su_key ~= 'RequiredSouls' then
non_souls_tr = non_souls_tr .. '<th>' .. p.localize(su_key) .. '</th>'
end
end
local tr = '<tr>' .. required_souls_header .. non_souls_tr .. non_souls_tr .. '</tr>'
ret = ret .. tr
-- Add data agg_records
for i, agg_record in ipairs(accumulated_data) do
local tr = ''
-- Retrieve souls agg_record
local required_souls = agg_record['RequiredSouls']
local souls_str = '{{Souls|' .. required_souls .. '}}'
tr = tr .. '<td>' .. souls_str .. '</td>'
-- Retrieve non-aggregate agg_record
local non_agg_record = soul_unlocks_data[i]
for su_key, lang_key in pairs(localization_map) do
if su_key ~= 'RequiredSouls' then
local value = to_tick(non_agg_record[su_key])
td = '<td>' .. value .. '</td>'
tr = tr .. td
end
end
-- Retrieve aggregate agg_record
for su_key, lang_key in pairs(localization_map) do
if su_key ~= 'RequiredSouls' then
local value = agg_record[su_key]
-- Display blank instead of nil if missing
if value == nil then value = '' end
td = '<td>' .. value .. '</td>'
tr = tr .. td
end
end
ret = ret .. '<tr>' .. tr .. '</tr>'
end
ret = '<table class="wikitable">' .. ret .. '</table>'
if debug_mode then
return ret
else
return frame:preprocess(ret)
end
end
end


return p
return p