Module:Characters

From Umamusume Wiki
Revision as of 00:44, 3 March 2024 by Snep (talk | contribs)
Jump to navigation Jump to search

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

local p = {}
local cargo = mw.ext.cargo

function p.list(frame)
	local query = {
		limit = '1000',
		orderBy = 'Characters.name_en ASC',
	}
	local fields = {'_pageName','name_en','icon','color_main','color_sub'}
	local characters = cargo.query('Characters',
		table.concat(fields, ','), query)
	
	local root = mw.html.create('div'):cssText('display:flex; flex-flow:row wrap;')
	for _, ch in ipairs(characters) do
		if (ch.icon) then
			local template = frame:expandTemplate{
				title='Character Icon',
				args={
					icon=ch.icon,
					name_en=ch.name_en,
					color_main=ch.color_main,
					color_sub=ch.color_sub,
					link=ch._pageName
				}
			}
			root:wikitext(template)	
		end
	end
	return root
end

function p.profile(frame)
	local pageName = frame.args[1]
	local query = {
		limit = '1',
		where = 'name_en="' .. pageName .. '"',
	}
	local fields = {'strengths','weaknesses','ears','tail','family',
		'my_rule','phone_background','before_a_race','good_subject',
		'secret_pride','frequent_purchase','secret1','secret2'}
	local characters = cargo.query('Characters',
		table.concat(fields, ','), query)

	local ch = characters[1]
	if ch then
		local template = frame:expandTemplate{
			title='Character Profile/table',
			args={
				strengths=ch.strengths,
				weaknesses=ch.weaknesses,
				ears=ch.ears,
				tail=ch.tail,
				family=ch.family,
				my_rule=ch.my_rule,
				phone_background=ch.phone_background,
				before_a_race=ch.before_a_race,
				good_subject=ch.good_subject,
				secret_pride=ch.secret_pride,
				frequent_purchase=ch.frequent_purchase,
				secret1=ch.secret1,
				secret2=ch.secret2,
			}
		}
		return template
	end
	return frame.args[1]
end

return p