Module:BookData

From Library of Ruina Wiki
Jump to navigation Jump to search

Module documentation: Module:BookData/doc
Data stored in Module:BookData/Data
Pages using this module

Stores Book data.

Functions

getData

Outputs a book's property

{{#invoke:BookData|getData|name|260004}}

Book of Olivier


listCards

Lists a book's combat pages and count

{{#invoke:BookData|listCards |260004}}

Afterimage ×5
Brace Up ×5
Forward March ×5
Augury Kick ×2
Celestial Spear ×2
Confrontation ×2
Godspeed ×2
Unyielding Strike ×2
Divinatory Impact ×3
Double-edged Rencounter ×3
Impugnatio Ultima ×1
True Trigram Formation ×1

listKeypages

Lists a book's key pages and count

{{#invoke:BookData|listKeypages|260004}}

Olivier’s Page ×1


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

function p.getData(frame)
	if not frame then return '' end
    local ID = frame.args[2]
    local property = frame.args[1]
    if not (bookData[ID]) then return 'book ' .. ID .. ' not found' end
	if not (bookData[ID][property]) then return '' end
    return bookData[ID][property] or ''
end

function p.listCards(frame)
	if not frame then return 'error: args missing' end
    local ID = frame.args[1]
	local array = bookData[ID]['cards']
	if array == '' then return 'None.' end
	local stringtable = {}
	for k,v in pairs(array) do
		table.insert(stringtable,"{{Card|" .. v[1] .."|noimg}}" .. " ×" .. v[2])
	end
	s = table.concat(stringtable, " <br> \n")
    return frame:preprocess(s)
end

function p.listKeypages(frame)
	if not frame then return 'error: args missing' end
    local ID = frame.args[1]
    if not bookData[ID]['keypages'] then return 'None.' end
	local array = bookData[ID]['keypages']
	if array == '' then return 'None.' end
	local stringtable = {}
	for k,v in pairs(array) do
		table.insert(stringtable,"{{KeyPage|"..v[1] .."}}" .. " ×" .. v[2])
	end
	s = table.concat(stringtable, " <br> \n")
    return frame:preprocess(s)
end

return p