Module:AbnormalityPage

From Library of Ruina Wiki
Jump to navigation Jump to search

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

local getArgs = require('Module:Arguments').getArgs
local p = {}
local AbnormalityPageData = mw.loadData('Module:AbnoPageData/Data')

function p.abnormalitypageMain(frame)
	local res = ''
	local args = getArgs(frame)
	local data = {}		--All AbnormalityPage Data
	local name = ''		--AbnormalityPage Name
	local level = ''
	local ID = ''
	local color = ''	--AbnormalityPage color
	name = args['1']
	--All Data
	data = AbnormalityPageData[name]
	ID = name
	if data == nil then return '[[Category:AbnormalityPageTemplateError]]<b style="color: red;">(Template:AbnormalityPage)non-existing Abnormalitypage,please check if you enabled CAPS LOCK.</b>' end--Might needs to be adjust.I'm not good at EN:(
	--Color
	if data['state'] == 'Awakening' then color = 'green'
	elseif data['state'] == 'Breakdown' then color = 'red'
	end
	
	if data['emotion_level'] == '1' then level = 'Ⅰ'
	elseif data['emotion_level'] == '2' then level = 'Ⅱ'
	elseif data['emotion_level'] == '3' then level = 'Ⅲ'
	end
	
	local navbox = args['navbox']
	local link = ''
	
	if navbox == 'true' then
		link = link .. '[[' .. (name) .. '|' .. '<span style="color: '
		if color == 'green' then link = link .. '#ADFEA3'
		elseif color == 'red' then link = link .. 'red'
		end
		link = link .. ';"><b>' .. (level) .. ' ' .. (args['2'] or name) .. '</b></span>]]'
	else
		link = link .. '[[' .. (name) .. '|' .. '<span style="color: '
		if color == 'green' then link = link .. '#ADFEA3'
		elseif color == 'red' then link = link .. 'red'
		end
		link = link .. ';">' .. (args['2'] or name) .. '</span>]]'
	end
	
	res = res .. '<span class="abnormalitypage-main" data-pageid="' .. ID .. '">'
		res = res .. '<span class="abnormalitypage-responder">' .. link .. '</span>'
	res = res .. '</span>'
	return res
end

function p.textTrans(text)
	local art = text
	art = string.gsub(art, '%s', '')
	return art
end

function p.abnormalitypageTooltip(frame)
	local res = ''
	local args = getArgs(frame)
	local data = {}		--All data of abn page
	local name = ''		--abn name
	local color = ''	--abn color
	local level = ''				--abn level
	local desc = ''					--abn desc
	local flavortext = ''			--abn flavortext
	local art = ''			--abn art
	--All data
	data = AbnormalityPageData[args['ID']]
	name = args['ID']
	--level
	if data['emotion_level'] == '1' then level = 'Ⅰ'
	elseif data['emotion_level'] == '2' then level = 'Ⅱ'
	elseif data['emotion_level'] == '3' then level = 'Ⅲ'
	end
	desc = data['desc']
	flavortext = data['flavortext']
	--color
	if data['state'] == 'Awakening' then color = 'green'
	elseif data['state'] == 'Breakdown' then color = 'red'
	end
	art = p.textTrans(args['ID'])
	res = res .. '<span class="abnormalitypage-tooltip-main abnormalitypage-color-' .. color .. '">'
		res = res .. '<span class="abnormalitypage-color-background"></span>'
		res = res .. '<span class="abnormalitypage-tooltip-left">'
			res = res .. '<span class="abnormalitypage-level">' .. level .. '</span>'
			res = res .. '<span class="abnormalitypage-name">' .. name .. '</span>'
			res = res .. '<span class="abnormalitypage-image">[[File:Abnopage ' .. art .. '.png|250px|link=]]</span>'
			res = res .. '<span class="abnormalitypage-cover"></span>'
			res = res .. '<span class="abnormalitypage-desc">' .. flavortext .. '</span>'
		res = res .. '</span>'
		res = res .. '<span class="abnormalitypage-tooltip-right">'
			res = res .. '<span class="abnormalitypage-tooltip-right-content">' .. desc .. '</span>'
		res = res .. '</span>'
	res = res .. '</span>'
	return res
end
return p