Module:Character Appearances

From fractalthorns wiki
Revision as of 21:46, 14 December 2023 by Sabre (talk | contribs)
Jump to navigation Jump to search

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

local package = {}

local appearances = {
	VERCE = { 
		"[the dark]",
		"[open arms for the endless night]",
		"[music and meter and rhyme]",
		"[verses]",
		"[though strangers]",
		"[somehow i knew]",
	},
	VERDE = {
		"[painting will never be the same]",
		"[jealous pigments]",
		"[afterlife]",
		"[though strangers]",
		"[somehow i knew]",
	},
	VIBRA = {
		"[bit of a shame]",
		"[afterlife]",
		"[verses] (mentioned)",
		"[though strangers]",
		"[somehow i knew]",
		"† [interviews i]",
		"† [interviews ii]",
	},
	VERTI = {
		"[the sun sets]",
		"[marked stone]",
	},
	SILLH = {
		"[virtues ii]",
		"[discovery]",
		"[canopy ii] (mentioned)",
		"[canopy iii]",
		"[canopy iv]",
		"[commands]",
		"[dejil's daughter] (mentioned)",
		"[the fifth deity]",
		"[canopy v] (mentioned)",
		"[loose ends] (mentioned)",
		"[end of a journey]",
		"[virtues iii] (mentioned)",
		"[repentance]",
		"† [interviews ii] (mentioned)",
	},
	DZUNE = {
		"[discovery] (mentioned)",
		"[canopy ii] (mentioned)",
		"[canpoy iii] (mentioned)",
		"[commands] (mentioned)",
		"[the fifth diety]",
		"[canopy v] (mentioned)",
		"[end of a journey]",
		"[repentance]",
	},
	ZEHAL = {
		"[being forgotten] (mentioned)",
		"[i made a friend] (mentioned)",
		"[lucky] (mentioned)",
		"[obituary] (mentioned)",
		"[starseeking] (mentioned)",
		"[the historian] (mentioned)",
	},
	AEMIL = {
		"[virtues ii]",
		"[a piece of firebark]",
		"[canopy i]",
		"[canopy ii]",
		"[canopy iii]",
		"[canopy iv]",
		"[canopy v]",
		"[commands] (mentioned)",
		"[dejil's daughter] (mentioned)",
		"[through rockthorn]",
		"[end of a journey] (mentioned)",
		"† [interviews i]",
		"† [interviews ii]",
	},
	LOXXE = {
		"[virtues i]",
		"[virtues ii]",
		"[a piece of firebark]",
		"[canopy i]",
		"[canopy ii]",
		"[canopy iii]",
		"[canopy v]",
		"[dejil's daughter]",
		"[nothing without its price] (mentioned)",
		"[loose ends] (mentioned)",
		"[through rockthorn]",
		"[virtues iii]",
		"† [interviews i]",
		"† [interviews ii]",
	},
	VETTE = {
		"[dreams of sunlight]",
		"[the historian] (mentioned)",
		"[warning]",
		"[lost and found]",
		"[dark whispers]",
		"[goodbyes i] (mentioned)",
		"[goodbyes ii]",
		"[secret agents] (mentioned)",
		"[commands]",
		"[the fifth diety]",
		"[end of a journey]",
	},
	MELLI = {
		"[dreams of sunlight]",
		"[warning] (mentioned)",
		"[dark whispers]",
		"[goodbyes ii] (mentioned)",
	},
	KIRII = {
		"[warning] (mentioned)",
		"[lost and found]",
		"[goodbyes i]",
		"[secret agents]",
		"[just in time]",
	},
	METIS = {
		"[warning] (mentioned)",
		"[lost and found]",
		"[goodbyes i] (mentioned)",
		"[secret agents]",
		"[just in time]",
	},
	LOTUS = {
		"[compromises i]",
		"[compromises ii]",
		"[halls of sculpture]",
		"[exfiltration]",
		"[warning] (mentioned)",
		"[lost and found]",
		"[secret agents] (mentioned)",
		"[dark whispers]",
		"[goodbyes i] (mentioned)",
		"[goodbyes ii]",
		"[life will change]",
		"[only ashes to rule] (mentioned)",
	},
	DZANE = {
		"[minehead]",
	},
	ROMAL = {
		"[compromises i]",
		"[compromises ii]",
		"[the historian] (mentioned)",
		"[exfiltration]",
		"[goodbyes i]",
		"[goodbyes ii]",
		"[waiting to die]",
		"[demonstration of spirit]",
		"[just in time]",
		"[life will change]",
		"[loyalty] (mentioned)",
		"[what was meant to be found]",
		"[loose ends]",
		"[end of a journey]",
		"[decimation] (mentioned)",
		"[only ashes to rule]",
		"† [interviews i]",
		"† [interviews ii]",
	},
	JAKAL = {
		"[starseeking]",
		"[demonstration of spirit]",
	},
	ELLAI = {
		"[being forgotten]",
		"[starseeking]",
		"[the historian] (mentioned)",
		"[demonstration of spirit]",
	},
	MEAZS = {
		"[being forgotten]",
		"[starseeking]",
		"[the historian] (mentioned)",
		"[demonstration of spirit]",
		"[what they deserve]",
		"[decimation] (mentioned)",
		"[not weakness] (mentioned)",
		"[the true king]",
		"† [interviews i]",
	},
	JAELA = {
		"[compromises i]",
		"[compromises ii]",
		"[exfiltration]",
		"[goodbyes ii] (mentioned)",
		"[life will change]",
		"[meant to be found]",
	},
	TIMUR = {
		"[meant to be found]"
	},
	EVJAR = {
		"[waiting to die]",
		"[life will change]",
		"[loyalty]",
		"[meant to be found]",
		"[loose ends]",
		"[end of a journey]",
		"[only ashes to rule]",
		"[repentance]",
		"† [interviews i]",
		"† [interviews ii]",
	},
	HEKAE = {
		"[compromises ii]",
		"[exfiltration]",
		"[goodbyes ii]",
		"[halls of sculpture]",
	},
	NIMEA = {
		"[loose ends]"
	},
	KHYEL = {
		"[compromises i]",
		"[compromises ii]",
		"[exfiltration]"
	},
	ARILI = {
		"[virtues ii]",
		"[canopy v] (mentioned)",
	},
	KEZSE = {
		"[canopy v]",
		"† [interviews ii]",
	},
	MALDA = {
		"[weathered through doubt]",
		"[the historian] (mentioned)"
	},
	MIKIL = {
		"[waiting to die]",
		"[life will change]",
		"[loyalty] (mentioned)",
		"† [interviews i] (mentioned)",
	},
	AERIS = {
		"[compromises ii]",
		"[goodbyes ii] (mentioned)",
	},
	SHAEL = {
		"[through rockthorn]",
	},
	KAEZA = {
		"[through rockthorn]",
	},
	LEZSE = {
		"[not weakness]",
	},
	REAME = {
		"[not weakness]",
	},
	KRYTA = {
		"[goodbyes i]",
	},
	TEKAL = {
		"[threads]",
		"[virtues i]",
		"[virtues iii] (mentioned)",
	},
	MEDZA = {
		"[threads] (mentioned)",
	},
	KAELI = {
		"[virtues i]",
	},
	LLEMA = {
		"[virtues i]",
		"† [interviews ii] (mentioned)",
	},
	SELTE = {
		"[virtues ii]",
	},
	KAVUK = {
		"[virtues iii]",
	},
	TEZEL = {
		"[virtues iii]",
	},
	RIMII = {
		"[virtues iii]",
	},
	HAGAZ = {
		"[weathered through doubt]",
	},
	VANJE = {
		"[weathered through doubt]",
	},
	KARUS = {
		"[weathered through doubt]",
	},
	VESES = {
		"[waiting to die]",
	},
	KIERA = {
		"[waiting to die]",
	},
	NDEJA = {
		"[weathered through doubt]",
	},
	SENNA = {
		"[dreams of sunlight]",
	},
	VAEJA = {
		"[rites]"
	},
	JERGH = {
		"[rites]"
	},
	RUTHA = {
		"[life will change]"
	},
	MEFET = {
		"[losing a brother]",
		"[reservoir]",
		"[council] (mentioned)",
		"[decimation]"
	},
	WARES = {
		"[the genius of the summit]",
		"[losing a brother]",
		"[reservoir]",
		"[council]",
		"[scribe] (mentioned)",
		"[nothing without its price] (mentioned)",
		"[providence] (mentioned)",
		"[what they deserve] (mentioned)",
		"[dejil's daughter]",
		"[virtues iii] (mentioned)",
		"[only ashes to rule]",
		"[decimation] (mentioned)",
		"† [interviews ii] (mentioned)",
	},
	NERAN = {
		"[reservoir]",
		"[council]",
		"[what they deserve] (mentioned)",
		"[decimation]",
	},
	CASEI = {
		"[concern]",
		"[losing a brother]",
		"[i made a friend]",
		"[lucky]",
		"[obituary]",
		"[starseeking]",
		"[what they deserve] (mentioned)",
		"[the historian]",
		"[providence]",
	},
	COLUS = {
		"[scribe]",
		"[nothing without its price]",
		"[providence] (mentioned)",
		"† [interviews i] (mentioned)",
		"† [interviews ii] (mentioned)",
	},
	ALUSE = {
		"[heaven and hell]",
	},
	SETEI = {
		"[heaven and hell]",
	},
	YARUS = {
		"[dejil's daughter]",
		"[only ashes to rule]",
	},
	DESSA = {
		"[dejil's daughter]",
		"[only ashes to rule]",
	},
	RIMAN = {
		"[the genius of the summit]",
	},
	CALEN = {
		"[the genius of the summit]",
	},
	ERISS = {
		"[nothing without its price] (mentioned)",
	},
	FEREI = {
		"[decimation]",
	},
	IWEML = {
		"[glacier i]",
		"[glacier ii]",
	},
	TACEK = {
		"[providence]",
	},
	WEHAN = {
		"[providence] (mentioned)",
	},
	FENAN = {
		"[providence] (mentioned)",
	},
	EMBER = {
		"[there it remains]",
		"[death itself]",
		"† [from a distance] (mentioned)",
		"† [fruits of chaos]",
		"† [deep hyperspace]",
		"† [abandonment protocol]",
	},
	FLOAT = {
		"[kindling]",
	},
	SIGIL = {
		"[kindling]",
	},
	QUARK = {
		"[kindling]",
	},
	PEARL = {
		"[timeplace]",
	},
	PLUTO = {
		"[timeplace]",
	},
	OCHRE = {
		"[timeplace]",
		"[death itself]",
		"[from a distance] (mentioned)"
	},
	NYXEM = {
		"[commencement]",
		"[liftoff]",
		"[little box]",
		"[eight] (mentioned)",
		"[the wanderer]",
		"[pulse] (mentioned)",
		"† [the hive queen]",
		"† [somehow i knew]",
		"† [heaven and hell]",
		"† [the genius of the summit]",
		"† [reservoir] (mentioned)",
		"† [concern] (mentioned)",
		"† [losing a brother] (mentioned)",
		"† [i made a friend] (mentioned)",
		"† [lucky] (mentioned)",
		"† [obituary] (mentioned)",
		"† [council] (mentioned)",
		"† [scribe] (mentioned)",
		"† [nothing without its price] (mentioned)",
		"† [what they deserve] (mentioned)",
		"† [decimation] (mentioned)",
		"† [glacier i] (mentioned)",
		"† [glacier ii]",
		"† [not weakness] (mentioned)",
		"† [the true king] (mentioned)",
		"† [providence] (mentioned)",
		"† [fruits of chaos] (mentioned)",
		"[interviews i] (mentioned)",
		"[interviews ii] (mentioned)",
		"[abandonment protocol] (mentioned)",
		"† [they are not alive]",
	},
	IOGOS = {
		"[commencement] (mentioned)",
		"[liftoff]",
		"[little box]",
		"[eight] (mentioned)",
		"[pulse]",
		"[seven hundred days]",
		"[deep hyperspace]",
		"[abandonment protocol]",
	},
	RHOMB = {
		"[commencement] (mentioned)",
		"[liftoff] (mentioned)",
		"[little box] (mentioned)",
		"[eight]",
		"[the wanderer]",
		"[seven hundred days] (mentioned)",
		"[deep hyperspace]",
		"[abandonment protocol] (mentioned)",
		"† [the hive queen]",
		"† [though strangers]",
		"† [somehow i knew]",
		"† [glacier ii]",
	},
	OEREC = {
		"[liftoff]",
		"[the wanderer]",
		"[pulse]",
		"[seven hundred days]",
		"[deep hyperspace]",
		"[interviews i]",
		"[interviews ii]",
		"[abandonment protocol]",
	},
	CYXYM = {
		"[liftoff] (mentioned)"
	},
	NIMDA = {
		"[pulse]",
		"[seven hundred days]",
		"[deep hyperspace]",
		"[abandonment protocol]",
	},
	VITAS = {
		"[pulse]",
		"[seven hundred days]"
	},
	HALEN = {
		"[seven hundred days]",
	},
	ZELUN = {
		"[seven hundred days]",
		"[equipment malfunction]",
		"[interviews ii]",
	},
	NITAS = {
		"[seven hundred days]",
	},
	NETRE = {
		"[interviews i]",
		"[interviews ii]",
	},
	SABRE = {
		"[from a distance]",
	}
}

function package.get_table_for_character(frame)
	local character = frame.args[1]
	local result = {}
	
	result[#result + 1] = '<table class="wikitable" style="width: 100%; flex-basis: 23%;">'
	result[#result + 1] = '<tr style="height: 20px;"><th>[[' .. character .. ']]</th></tr>'
	
	for _, record in pairs(appearances[character]) do
		local pre_text = string.match(record, "(.+)%[") or ""
		local record_name = string.match(record, "%[(.+)%]") 
		local post_text = string.match(record, "%](.+)") or ""
		
		local record_link = 'https://doughbyte.com/art/?show=' .. string.gsub(record_name, ' ', '_')
		result[#result + 1] = '<tr><td>' .. pre_text .. '[' .. record_link .. ' ' .. record_name .. ']' .. post_text .. '</tr></td>'
	end
	
	result[#result + 1] = "</table>"
    return table.concat(result, '\n')
end

return package