Module:Thought

From RimWorld Wiki
Revision as of 05:40, 16 August 2024 by Arcangelus (talk | contribs) (For the record: you need to return the table to which any function is being executed. return p, in this case.)
Jump to navigation Jump to search

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

local p = {}
local getArgs = require('Module:Arguments').getArgs
-- "stack, "duration", "multi", "label", "desc", "label"
valores_ingresados={"value", "value2", "value3", "value4", "value5", "value6", "value7", "value8", "value9" }


function p.Main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	if value then
		if value2 then
			return p.Thought(args)..'<abbr title="'..desc..'">'..label..gsub("^%l", string.upper)..'</abbr>'.." [[mood]]"
		else
			return '<abbr title="'..p.stacks(args)..'"> '..'<abbr title="'..desc..'">'..label..gsub("^%l", string.upper)..'</abbr>'.." [[mood]]"
		end
	end
end

function p.Thought(args)--This is just the value section.
	local valores_buscados={}
	for i, j in ipairs(valores_ingresados) do
		local vx = valores_ingresados[i]
		local vy = ""
		if vx then -- Not a nil
			if tonumber(vx) then --A number
				if tonumber(vx)<0 then vy='<b><font color="firebrick">'..vx.."</font></b>" else vy='<b><font color="forestgreen">'..vx.."</font></b>" end
			else vy='<b>'..vx.."</b>" --The idea is to prevent a hard to track error
			end
			valores_buscados[#valores_buscados+1]=vx
		end
	end
	return "<b>"..table.concat(valores_buscados,"<b>/</b>").."</b>"
end

function p.stacks(args)--This is just the stacking section.
	if stack then
		local va= "Stacking "..stack.."times "
		if multi == 1 then
			text= "for a maximum of "..tostring(value*stack)
		else
			text= "with a "..multi.." multiplier for maximum of"..tostring(value*( 1 - multi^stack)/(1 - multi))
		end
		return va..text
	else
		if multi == 1 then --What about a mult above 1?
			text = "Stacking infinitely"
		else
			text = "Stacking with a "..multi.." multiplier for maximum of "..tostring(value*( 1 - multi^100)/(1 - multi) )
		end
		return text
	end
end

return p