Module:EffectLister/CPCapProjects

From Terra Invicta Official Wiki

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

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

--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
local projectTable = {}
--endregion

--region Private methods

function getProjectTable()
	for rowID, row in pairs(EffectData) do
		if row['contexts/0'] == 'ControlPointMaintenance' or row['contexts/1'] == 'ControlPointMaintenance' 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
					if not projectTable[projectID] then
						projectTable[projectID] = 0
					end
					projectTable[projectID] = projectTable[projectID] - (tonumber(row['value'] or 0) or 0)
				end
			end
		end
	end
	return projectTable
end

--endregion

--region Public methods
--endregion

return getProjectTable()