Module:MissionLister
From Terra Invicta Official Wiki
Documentation for this module may be created at Module:MissionLister/doc
---
---Reads the Mission data files and presents them in readable formats, with additional calculated statistics.
---
---@module MissionLister
local MissionLister = {}
--region Dependencies
local IconModule = require('Module:Icon')
local MissionData = mw.loadData('Module:CSVReader/Mission')
local MissionNames = mw.loadData('Module:ENReader/Mission')
--endregion
--region Private constants
--endregion
--region Private member variables
--none
--endregion
--region Private methods
--endregion
--region Public methods
---#param Whether to show the spoiler missions.
---@return wiki table of Missions to Noise Levels
function MissionLister.ListNoise(frame)
local showSpoilers = frame.args[1]
local returnString = '{| class="wikitable sortable mw-collapsible" style="text-align: center;"'
returnString = returnString .. "\n|+ Noise generated by [[missions]]"
returnString = returnString .. '\n|-'
returnString = returnString .. '\n! rowspan=2 | Mission'
returnString = returnString .. '\n! colspan=4 | Noise Generated when Outcome is:'
returnString = returnString .. '\n|-'
returnString = returnString .. '\n! Critical Failure'
returnString = returnString .. '\n! Normal Failure'
returnString = returnString .. '\n! Normal Success'
returnString = returnString .. '\n! Critical Success'
returnString = returnString .. '\n|-'
for rowID, row in pairs(MissionData) do
if (not row['disable'] or row['disable'] ~= 'true') then
if (showSpoilers == 'true') == (row['councilorEffects/0/$type'] == 'TIMissionEffect_Win'
or (row['knowledgeProject'] and row['knowledgeProject'] ~= '')) then
returnString = returnString .. '\n| ' .. IconModule.MissionIcon({args={rowID}}) .. '[[' .. MissionNames['TIMissionTemplate.displayName.' .. rowID] .. ']]'
if row['resolutionMethod/$type'] == 'TIMissionResolution_Contested' then
returnString = returnString .. '\n| ' .. row['noise/1']
returnString = returnString .. '\n| ' .. row['noise/2']
returnString = returnString .. '\n| ' .. row['noise/4']
returnString = returnString .. '\n| ' .. row['noise/5']
else
returnString = returnString .. '\n| '
returnString = returnString .. '\n| '
returnString = returnString .. '\n| ' .. row['noise/4']
returnString = returnString .. '\n| '
end
returnString = returnString .. '\n|-'
end
end
end
returnString = returnString .. '\n|}'
return returnString
end
---#param Whether to show the spoiler missions.
---@return wiki table of Missions to Hate Levels
function MissionLister.ListHate(frame)
local showSpoilers = frame.args[1]
local returnString = '{| class="wikitable sortable mw-collapsible" style="text-align: center;"'
returnString = returnString .. "\n|+ Base Hate generated by [[missions]]"
returnString = returnString .. '\n|-'
returnString = returnString .. '\n! rowspan=2 | Mission'
returnString = returnString .. '\n! colspan=4 | Base Hate Generated when Outcome is:'
returnString = returnString .. '\n|-'
returnString = returnString .. '\n! Critical Failure'
returnString = returnString .. '\n! Normal Failure'
returnString = returnString .. '\n! Normal Success'
returnString = returnString .. '\n! Critical Success'
returnString = returnString .. '\n|-'
for rowID, row in pairs(MissionData) do
if (not row['disable'] or row['disable'] ~= 'true') then
if (showSpoilers == 'true') == (row['councilorEffects/0/$type'] == 'TIMissionEffect_Win'
or (row['knowledgeProject'] and row['knowledgeProject'] ~= '')) then
returnString = returnString .. '\n| ' .. IconModule.MissionIcon({args={rowID}}) .. '[[' .. MissionNames['TIMissionTemplate.displayName.' .. rowID] .. ']]'
if row['resolutionMethod/$type'] == 'TIMissionResolution_Contested' then
returnString = returnString .. '\n| ' .. row['hate/1']
returnString = returnString .. '\n| ' .. row['hate/2']
returnString = returnString .. '\n| ' .. row['hate/4']
returnString = returnString .. '\n| ' .. row['hate/5']
else
returnString = returnString .. '\n| '
returnString = returnString .. '\n| '
returnString = returnString .. '\n| ' .. row['hate/4']
returnString = returnString .. '\n| '
end
returnString = returnString .. '\n|-'
end
end
end
returnString = returnString .. '\n|}'
return returnString
end
--endregion
return MissionLister


