Module:MonsterTooltip

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

MonsterTooltip create monster tooltip.

Documentation

Package items

monstertooltip.MonsterLink(frame) (function)
Creates a monster link.
Parameter: frame Frame object (table)
Returns: Preprocessed wikitext of resultant link (string)


---	'''MonsterTooltip''' create monster tooltip.
--	
--	@module		monstertooltip
--	@alias		p
--	@author		[[User:Thundermaker300]]
--	@attribution	All who helped to update enemy infoboxes
--	@require	[[Module:Enemies/Data]]
--	@release	stable
--	<nowiki>
local p = {}

local MonsterData = mw.loadData('Module:Enemies/Data').Monsters

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><br><span style=\"color:#959494; font-style:italic;\">%s</span><span class="makeshift-hr"></span>%s' ..
                            '</span>' ..
                          '</span>'

local monster_display = "HP: {{Color|hp|%s (+%s per level)}}<br>Damage: {{Color|d|%s (+%s per level)}}<br>Class: {{Color|u|%s}}<br>Speed: {{Color|green|%s}} m/s<br>Armor: {{Color|yellow|%s}}"

---	Creates a monster link.
--	@function		p.MonsterLink
--	@param			{table} frame Frame object
--	@return			{string} Preprocessed wikitext of resultant link
function p.Tooltip(frame)
	local data = MonsterData[frame.args[1]]
	if data == nil then
		return error("MonsterTooltip.Tooltip(frame): Invalid monster!")
	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",
		--(data.Type == "Boss" or data.Type == "Special Boss") and "boss" or "white",
		--data.Type or "Unknown",
		(data.BossName and data.BossName or ""),
		string.format(monster_display,
			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.Class or "Unknown",
			data.BaseSpeed and tostring(data.BaseSpeed) or "Unknown",
			data.BaseArmor and tostring(data.BaseArmor) or "Unknown"
		)
	)
	return frame:preprocess(str)
end

return p