Módulo:Dialogue list

De RuneScape Wiki
Ir para: navegação, pesquisa
Documentação do módulo
Esta documentação é transcluída de Predefinição:Sem documentação/doc. [editar] [atualizar]
Este módulo não possui nenhuma documentação. Por favor, considere adicionar uma documentação em Módulo:Dialogue list/doc. [editar]
Módulo:Dialogue list's a função main é invocada por Predefinição:Transcrição NPC.

-- <pre>
local p = {}

function p.main(frame)
	local args = frame:getParent().args

	-- return tag
	local ret = mw.html.create('div')
				:addClass('seealso')

	local params = {}
	local ttl = 0
	
	-- noplayer
	local hasplayer = true

	-- collect and count arguments
	for _, v in ipairs(args) do
		if string.lower(v) == 'noplayer' then
			hasplayer = false
		elseif string.lower(v) ~= 'player' then
			ttl = ttl + 1
			table.insert(params,v)
		end
	end
	-- increase count if player
	if hasplayer then
		ttl = ttl + 1
	end

	-- main return text
	ret:wikitext('Esta transcrição envolve diálogos com ')

	-- for all arguments
	for i, v in ipairs(params) do
		-- add links
		if i < ttl and ttl > 1 then
			ret:wikitext('[['..v..']]')
		-- if last link
		elseif i == ttl then
			-- if only link
			if ttl == 1 then
				ret:wikitext('[['..v..']]')
			-- if final link
			else
				ret:wikitext(' e [['..v..']]')
			end
		end

		-- if more to come, add commas
		if i < ttl and ttl > 2 then
			ret:wikitext(', ')
		end
	end
	
	-- add player
	if hasplayer then
		if ttl == 1 then
			ret:wikitext('o [[Jogador]]')
		else
			ret:wikitext(' e o [[jogador]]')
		end
	end

	-- period
	ret:wikitext('.')
	
	-- transcript npcs property
	if mw.title.getCurrentTitle().namespace == 116 then
		smw = {}
		for _, v in ipairs(params) do
			table.insert(smw,string.match(v, "[^\|]+"))
		end
		if hasplayer then
			table.insert(smw,'Jogador')
		end
		mw.smw.set({['Transcrição NPCs']=smw})
	end

	return ret
end

return p