Module:EffectLister/ContextProjects

From Terra Invicta Official Wiki

Documentation for this module may be created at Module:EffectLister/ContextProjects/doc

---
---Reads the Effect and Project data files and computes a table of Project to Context bonuses

---@module ContextProjects
local ContextProjects = {}

--region Dependencies
local EffectData = mw.loadData('Module:CSVReader/Effect')
local ProjectData = mw.loadData('Module:CSVReader/Project')
--endregion

--region Private constants
--endregion

--region Private member variables
--endregion

--region Private methods

function ContextProjects.getProjectTable(context)
	local projectTable = {}
	for rowID, row in pairs(EffectData) do
		if row['contexts/0'] == context or row['contexts/1'] == context then
			for projectID, projectRow in pairs(ProjectData) do
				if ((not projectRow['disable'] or projectRow['disable'] ~= 'true') 
					and projectRow['factionPrereq/0'] ~= 'AlienCouncil')
					and (projectRow['effects/0'] == rowID 
					or projectRow['effects/1'] == rowID 
					or projectRow['effects/2'] == rowID 
					or projectRow['effects/3'] == rowID) then
					projectTable[projectID] = {row['operation'],(tonumber(row['value'] or 0) or 0)}
				end
			end
		end
	end
	return projectTable
end

--endregion

--region Public methods
--endregion

return ContextProjects