User:Histidine/Sandbox
		
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
		
		
		
		
		
	
 Cloakbot Factory
 | ||||||
|---|---|---|---|---|---|---|
| Name | Role | Aliases | Cost | HP | ||
![]()  | 
Conjurer | Construction | 120 | 450 | ||
![]()  | 
Glaive | Raider | 65 | 200 | ||
![]()  | 
Scythe | Raider | 250 | 820 | ||
![]()  | 
Ronin | Skirmisher | 90 | 420 | ||
![]()  | 
Reaver | Riot | 220 | 820 | ||
![]()  | 
Knight | Assault | 350 | 2400 | ||
![]()  | 
Sling | Artillery | 110 | 350 | ||
![]()  | 
Phantom | Artillery | 750 | 560 | ||
![]()  | 
Gremlin | Anti-Air | 150 | 550 | ||
![]()  | 
Imp | Bomb | 120 | 50 | ||
![]()  | 
Iris | Other | 600 | 600 | ||
Lua widget code to generate:
local fileOutputDir = "temp/"
local function getDescString(unitDef)
	local desc = Spring.Utilities.GetDescription(unitDef)
	if desc:find("Raider") then
		return "Raider"
	elseif desc:find("Riot") then
		return "Riot"
	elseif desc:find("Skirmisher") then
		return "Skirmisher"
	elseif desc:find("Assault") then
		return "Assault"
	elseif desc:find("Artillery") then
		return "Artillery"
	elseif desc:find("Anti%-Air") then
		return "Anti-Air"
	elseif desc:find("Construction") then
		return "Construction"
	elseif desc:find("Scout") then
		return "Scout"
	elseif desc:find("Support") then
		return "Support"
	elseif desc:find("Anti-Heavy") then
		return "Anti-Heavy"
	elseif desc:find("Fighter") then
		return "Fighter"
	elseif desc:find("Bomber") then
		return "Bomber"
	elseif desc:find("Transport") then
		return "Transport"
	elseif desc:find("Bomb") then
		return "Bomb"
	else
		return "Other"
	end
end
local function generateTable(factoryDefName)
	local factoryDef = UnitDefNames[factoryDefName]
	local output = '{| class="wikitable" style="text-align:center;"\n'
	local imagePath = "http://manual.zero-k.info/unitpics/" .. factoryDefName .. ".png"
	output = output .. '! colspan="7" | ' .. imagePath .. "[[" .. factoryDef.humanName .. "]]\n"
	output = output .. "|-\n"
	output = output .. '! || Name || colspan="2" | Role || Aliases || Cost || HP\n'
	output = output .. "|-\n"
	
	for index, unitDefID in ipairs(factoryDef.buildOptions) do
		local unitDef = UnitDefs[unitDefID]
		local unitName = unitDef.name
		imagePath = "http://manual.zero-k.info/unitpics/" .. unitName .. ".png"
		local icon = '<img src="http://manual.zero-k.info/icons/' .. unitDef.iconType .. '.png" width="32px" />'
		output = output .. "| " .. imagePath .. " || [[" .. unitDef.humanName .. "]] || " 
			.. icon .. " || " .. getDescString(unitDef) .. " ||  || " .. unitDef.metalCost .. " || " 
			.. unitDef.health .. "\n"
		output = output .. "|-\n"
	end
	
	output = output .. "|}"
	
	return output
end
local function printTable(factoryDefName, outputDir)
	local str = generateTable(factoryDefName)
	local file = io.open (outputDir .. "/" .. factoryDefName .. ".txt", "w")
	if (file== nil) then Spring.Echo ("could not open file for writing!") return end
	file:write(str)
	file:flush()
	file:close()
end
function widget:Initialize()
	printTable("factorycloak", fileOutputDir)
end










