Emperor's Domination Wiki
(Created page with "local p = {} local getArgs = require('Module:Arguments').getArgs local m = require('Module:Main') local infobox = require('Module:Infobox') local printf = require('Module:Pri...")
 
No edit summary
Line 31: Line 31:
 
output = table.concat(output)
 
output = table.concat(output)
 
 
  +
return output_categories..frame:preprocess(output_infobox..output)
−
return output_infobox..output..output_categories
 
 
end
 
end
   

Revision as of 10:11, 2 August 2020

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

local p = {}
local getArgs = require('Module:Arguments').getArgs 
local m = require('Module:Main')
local infobox = require('Module:Infobox')
local printf = require('Module:Printf')
local era = require('Module:Era')

function p.main(frame)
	local args = getArgs(frame)
	local pagename = mw.title.getCurrentTitle().text
	local value
	local categories = {}
	local group = {}
	local output_categories = {}
	local output_infobox = {}
	local output = {}

	table.insert(output_categories, 'Lineages')
	
	value, categories = p.group_designations(args)
	table.insert(output_infobox, value)
	output_categories = m.join_tables(output_categories, categories) 
	
	value, categories = p.group_origin(args)
	table.insert(output_infobox, value)
	output_categories = m.join_tables(output_categories, categories) 


	output_infobox = infobox.create_infobox( table.concat(output_infobox) )
	output_categories = m.add_categories(output_categories)
	output = table.concat(output)
	
	return output_categories..frame:preprocess(output_infobox..output)
end


-----------------------------------------------------------------------------------------------
-- status of lineage (exist/destroyed)
function p.status(args)
    local status = args.status
    local last_appearance = args.last_appearance
    local destroyed = {}
    local unconfirmed = 'Lineages with unconfirmed status'
    local unknown = 'Lineages with unknown status'
    local category = ''
    local i
    local s
    local cause_of_destruction = ''
    local categories = {}
    local output = ''

	for i = 1,10 do
		s = args['destroyed_by'..i]
		if not m.empty(s)
			then
        		s = printf.get_text_comment_ref(s)
        		table.insert(categories, 'Destroyed by '..m.break_link(s.text,1) )
        		table.insert(destroyed, s.all)
    	end
    end

    if not m.empty(destroyed)
    	then cause_of_destruction = 'Destroyed by '..mw.text.listToText(destroyed)
    end

    --if not m.empty(args.destruction_cause)
    --	then cause_of_destruction = args.destruction_cause
    --end
    
    if not m.empty(status)
        then
            if status == 'Exists'
                then
                    category = 'Existing Lineages'
                    output = m.category_link(category, status)
                    table.insert(categories, category)
                    if not m.empty(last_appearance) or not m.empty(cause_of_destruction)
						then table.insert(categories, unconfirmed)
					end
                elseif status == 'Destroyed'
                    then
                        category = 'Destroyed Lineages'
                        output = m.category_link(category, status)
                        table.insert(categories, category)
                        if m.empty(last_appearance)
                            then table.insert(categories, unconfirmed)
                        end
                        --if m.empty(cause_of_destruction)
						--	then table.insert(categories, 'Cause of Destruction Needed')
						--end
                else
                    output = status
                    table.insert(categories, unknown)
            end
        elseif not m.empty(cause_of_destruction) or not m.empty(last_appearance)
            then
                category = 'Destroyed Lineages'
                output = m.category_link(category, 'Destroyed')
                table.insert(categories, category)
                table.insert(categories, unconfirmed)
        else
            table.insert(categories, unknown)
    end

    return output, cause_of_destruction, categories
end

-- *********************		GROUPS		*********************
-----------------------------------------------------------------------------------------------
-- Name and other designations
function p.group_designations(args)
	local value = ''
	local output_categories = {}
	local output = {}
	
	value, output_categories = infobox.add_title(args)
	
	table.insert(output, value)
	table.insert(output, infobox.add_row('Aliases', args.aliases) )

	return table.concat(output), output_categories
end


-----------------------------------------------------------------------------------------------
-- Origin
function p.group_origin(args)
	local header = 'Origin'
	local categories = {}
	local value = ''
	local cause_of_destruction = ''
	local output_categories = {}
	local output = {}

	value, cause_of_destruction, categories = p.status(args)
	table.insert(output, infobox.add_row('Current status', value))
	table.insert(output, infobox.add_row('Cause of destruction', cause_of_destruction) )
	output_categories = m.join_tables(output_categories, categories)
	
	value = era.lua_eras(args.era, '/Lineages')
	table.insert(output, infobox.add_row('Era(s)', value) )

	return infobox.add_group(output, header), output_categories
end


return p