Module:SurvivorTooltip

From Risk of Rain 2 Wiki
Jump to navigation Jump to search

SurvivorTooltip create survivor tooltip.

Documentation

Package items

survivortooltip.Tooltip(frame) (function)
Creates a survivor tooltip.
Parameter: frame Frame object (table)
Returns: Preprocessed wikitext of resultant link (string)


---	'''SurvivorTooltip''' create survivor tooltip.
--	
--	@module		survivortooltip
--	@alias		p
--	@author		[[User:Thundermaker300]]
--	@attribution	All who helped to update survivor infoboxes
--	@require	[[Module:Survivors/Data]]
--	@release	stable
--	<nowiki>
local p = {}

local SurvivorData = mw.loadData('Module:Survivors/Data').Survivors

local tooltip_template = '<span class="tooltip-block nomobile">' .. 
                            '<span class="tooltip-icon">' ..
                              '<span>%s</span>' ..
                              '' ..
                            '</span>' ..
                            '<span>' ..
                              '%s<span style="font-weight:bold">%s</span><span class="makeshift-hr"></span>%s' ..
                            '</span>' ..
                          '</span>'

local survivor_display = "%s<br><span class=\"makeshift-hr\"></span>Class: {{Color|u|%s}}<br>HP: {{Color|hp|%s (+%s per level)}}<br>Damage: {{Color|d|%s (+%s per level)}}<br>Armor: {{Color|#00A36C|%s}}<br>Umbra: {{Color|#616161|%s}}"

---	Creates a survivor tooltip.
--	@function		p.Tooltip
--	@param			{table} frame Frame object
--	@return			{string} Preprocessed wikitext of resultant link
function p.Tooltip(frame)
	local data = SurvivorData[frame.args[1]]
	if data == nil then
		return error("SurvivorTooltip.Tooltip(frame): Invalid survivor!")
	end
	local str = string.format(
		tooltip_template,
		data.Image and "[[File:" .. data.Image .. "|60px]]" or "",
		data.Expansion and "{{" .. data.Expansion .. "}}" or "",
		data.Name or "Unknown",
		string.format(survivor_display,
			data.Description,
			data.Class or "Unknown",
			data.BaseHealth and tostring(data.BaseHealth) or "Unknown",
			data.ScalingHealth and tostring(data.ScalingHealth) or "Unknown",
			data.BaseDamage and tostring(data.BaseDamage) or "Unknown",
			data.ScalingDamage and tostring(data.ScalingDamage) or "Unknown",
			data.BaseArmor and tostring(data.BaseArmor) or "Unknown",
			data.Umbra or "N/A"
		)
	)
	return frame:preprocess(str)
end

return p