<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://zero-k.info/mediawiki/index.php?action=history&amp;feed=atom&amp;title=User%3AOflameo%2FSandbox</id>
	<title>User:Oflameo/Sandbox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://zero-k.info/mediawiki/index.php?action=history&amp;feed=atom&amp;title=User%3AOflameo%2FSandbox"/>
	<link rel="alternate" type="text/html" href="https://zero-k.info/mediawiki/index.php?title=User:Oflameo/Sandbox&amp;action=history"/>
	<updated>2026-04-05T07:32:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://zero-k.info/mediawiki/index.php?title=User:Oflameo/Sandbox&amp;diff=5319&amp;oldid=prev</id>
		<title>Oflameo: Copy of Histidine's current sandbox</title>
		<link rel="alternate" type="text/html" href="https://zero-k.info/mediawiki/index.php?title=User:Oflameo/Sandbox&amp;diff=5319&amp;oldid=prev"/>
		<updated>2019-04-09T21:39:29Z</updated>

		<summary type="html">&lt;p&gt;Copy of Histidine&amp;#039;s current sandbox&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | http://manual.zero-k.info/unitpics/factorycloak.png[[Cloakbot Factory]]&lt;br /&gt;
|-&lt;br /&gt;
! || Name || colspan=&amp;quot;2&amp;quot; | Role || Aliases || Cost || HP&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakcon.png || [[Conjurer]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/builder.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Construction ||  || 120 || 450&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakraid.png || [[Glaive]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotraider.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Raider ||  || 65 || 200&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakheavyraid.png || [[Scythe]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/stealth.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Raider ||  || 250 || 820&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakskirm.png || [[Ronin]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotskirm.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Skirmisher ||  || 90 || 420&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakriot.png || [[Reaver]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotriot.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Riot ||  || 220 || 820&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakassault.png || [[Knight]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotassault.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Assault ||  || 350 || 2400&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakarty.png || [[Sling]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotarty.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Artillery ||  || 110 || 350&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloaksnipe.png || [[Phantom]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/sniper.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Artillery ||  || 750 || 560&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakaa.png || [[Gremlin]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotaa.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Anti-Air ||  || 150 || 550&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakbomb.png || [[Imp]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/spiderbomb.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Bomb ||  || 120 || 50&lt;br /&gt;
|-&lt;br /&gt;
| http://manual.zero-k.info/unitpics/cloakjammer.png || [[Iris]] || &amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/kbotjammer.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt; || Other ||  || 600 || 600&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Lua widget code to generate:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Lua&amp;quot; line='line'&amp;gt;&lt;br /&gt;
local fileOutputDir = &amp;quot;temp/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local function getDescString(unitDef)&lt;br /&gt;
	local desc = Spring.Utilities.GetDescription(unitDef)&lt;br /&gt;
	if desc:find(&amp;quot;Raider&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Raider&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Riot&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Riot&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Skirmisher&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Skirmisher&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Assault&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Assault&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Artillery&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Artillery&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Anti%-Air&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Anti-Air&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Construction&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Construction&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Scout&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Scout&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Support&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Support&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Anti-Heavy&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Anti-Heavy&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Fighter&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Fighter&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Bomber&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Bomber&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Transport&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Transport&amp;quot;&lt;br /&gt;
	elseif desc:find(&amp;quot;Bomb&amp;quot;) then&lt;br /&gt;
		return &amp;quot;Bomb&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;Other&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function generateTable(factoryDefName)&lt;br /&gt;
	local factoryDef = UnitDefNames[factoryDefName]&lt;br /&gt;
&lt;br /&gt;
	local output = '{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;\n'&lt;br /&gt;
	local imagePath = &amp;quot;http://manual.zero-k.info/unitpics/&amp;quot; .. factoryDefName .. &amp;quot;.png&amp;quot;&lt;br /&gt;
	output = output .. '! colspan=&amp;quot;7&amp;quot; | ' .. imagePath .. &amp;quot;[[&amp;quot; .. factoryDef.humanName .. &amp;quot;]]\n&amp;quot;&lt;br /&gt;
	output = output .. &amp;quot;|-\n&amp;quot;&lt;br /&gt;
	output = output .. '! || Name || colspan=&amp;quot;2&amp;quot; | Role || Aliases || Cost || HP\n'&lt;br /&gt;
	output = output .. &amp;quot;|-\n&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	for index, unitDefID in ipairs(factoryDef.buildOptions) do&lt;br /&gt;
		local unitDef = UnitDefs[unitDefID]&lt;br /&gt;
		local unitName = unitDef.name&lt;br /&gt;
		imagePath = &amp;quot;http://manual.zero-k.info/unitpics/&amp;quot; .. unitName .. &amp;quot;.png&amp;quot;&lt;br /&gt;
		local icon = '&amp;lt;img src=&amp;quot;http://manual.zero-k.info/icons/' .. unitDef.iconType .. '.png&amp;quot; width=&amp;quot;32px&amp;quot; /&amp;gt;'&lt;br /&gt;
		output = output .. &amp;quot;| &amp;quot; .. imagePath .. &amp;quot; || [[&amp;quot; .. unitDef.humanName .. &amp;quot;]] || &amp;quot; &lt;br /&gt;
			.. icon .. &amp;quot; || &amp;quot; .. getDescString(unitDef) .. &amp;quot; ||  || &amp;quot; .. unitDef.metalCost .. &amp;quot; || &amp;quot; &lt;br /&gt;
			.. unitDef.health .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		output = output .. &amp;quot;|-\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	output = output .. &amp;quot;|}&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printTable(factoryDefName, outputDir)&lt;br /&gt;
	local str = generateTable(factoryDefName)&lt;br /&gt;
	local file = io.open (outputDir .. &amp;quot;/&amp;quot; .. factoryDefName .. &amp;quot;.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
	if (file== nil) then Spring.Echo (&amp;quot;could not open file for writing!&amp;quot;) return end&lt;br /&gt;
	file:write(str)&lt;br /&gt;
	file:flush()&lt;br /&gt;
	file:close()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function widget:Initialize()&lt;br /&gt;
	printTable(&amp;quot;factorycloak&amp;quot;, fileOutputDir)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Oflameo</name></author>
		
	</entry>
</feed>