Module:Etrian 1 Dungeon Items table: Difference between revisions

MDFW - The Mystery Dungeon Tree of Information.
Jump to navigation Jump to search
(In Misc., Ariadne Thread are more frequent than Key)
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--
-- Module:Etrian 1 Dungeon Items table
-- Module:Etrian 1 Dungeon Items table
--
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Line 13: Line 13:
local output = {}
local output = {}
-- Header row
-- Header row
table.insert(output, '<table class="templateTheme" style="text-align: center; width: 100%;">')
table.insert(output, '<table class="wikitable" style="text-align: center; width: 100%;">')
table.insert(output, '<tr>')
table.insert(output, '<tr>')
if categoryArg then
if categoryArg then
table.insert(output, '<th class="templatePrimary" colspan="4" style="border-radius: 1rem 1rem 0 0; height:7.5rem;">[[File:Etrian 1 - ' .. frame:preprocess('{{#switch:' .. categoryArg .. ' | Accessories=Accessory | Armors=Armor | Sigils=Sigil | Weapons=Weapon | Shields=Shield | Bottles=Bottle | Scrolls=Scroll | Staves=Staff | Books=Book | Misc.|Others=Ariadne Thread | #default={{{category|}}} }}') .. '.png|50x50px]]<br>' .. frame:expandTemplate{title = "Etrian1", args = {(categoryArg or "")}} .. '</th>')
table.insert(output, '<th colspan="4" style="height: 7.5rem;">[[File:Etrian 1 - ' .. frame:preprocess('{{#switch:' .. categoryArg .. ' | Accessories=Accessory | Armors=Armor | Sigils=Sigil | Weapons=Weapon | Shields=Shield | Bottles=Bottle | Scrolls=Scroll | Staves=Staff | Books=Book | Misc.|Others=Ariadne Thread | #default={{{category|}}} }}') .. '.png|alt=' .. (categoryArg or "") .. '.|50x50px]]<br>' .. frame:expandTemplate{title = "Etrian1", args = {(categoryArg or "")}} .. '</th>')
else
else
table.insert(output, '<th class="templatePrimary" colspan="4" style="border-radius: 1rem 1rem 0 0; height:7.5rem;">' .. frame:expandTemplate{title = "Research"} .. '</th>')
table.insert(output, '<th colspan="4" style="height: 7.5rem;">' .. frame:expandTemplate{title = "Research"} .. '</th>')
end
end
table.insert(output, '</tr>')
table.insert(output, '</tr>')
table.insert(output, '<tr>')
table.insert(output, '<tr>')
table.insert(output, '<th class="templatePrimary" style="width: 25%;">English</th>')
table.insert(output, '<th style="width: 25%;">English</th>')
table.insert(output, '<th class="templatePrimary" style="width: 25%;">Japanese</th>')
table.insert(output, '<th style="width: 25%;">Japanese</th>')
table.insert(output, '<th class="templatePrimary" style="width: 25%;">Floors</th>')
table.insert(output, '<th style="width: 25%;">Floors</th>')
table.insert(output, '<th class="templatePrimary" style="width: 25%;">Item<br>Frequency</th>')
table.insert(output, '<th style="width: 25%;">Item<br>Frequency</th>')
table.insert(output, '</tr>')
table.insert(output, '</tr>')
-- Data rows
-- Data rows
Line 36: Line 36:
end
end
local rowData = {}
local rowData = {}
table.insert(rowData, '<tr class="itemsTableRow">')
table.insert(rowData, '<tr>')
if itemArg then
if itemArg then
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Etrian1", args = {(itemArg or "")}} .. '</td>')
table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Etrian1", args = {(itemArg or "")}} .. '</td>')
table.insert(rowData, '<td class="templateSecondary">' .. frame:preprocess('{{#invoke:Etrian 1 Item Data Cell|etrian1ItemDataCell|name=' .. (itemArg or "") .. '}}') .. '</td>')
table.insert(rowData, '<td>' .. frame:preprocess('{{#invoke:Etrian 1 Item Data Cell|etrian1ItemDataCell|name=' .. (itemArg or "") .. '}}') .. '</td>')
else
else
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Research"} .. '</td>')
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Research"} .. '</td>')
end
end
table.insert(rowData, '<td class="templateSecondary">' .. (floorArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '<td>' .. (floorArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '<td class="templateSecondary">' .. (frequencyArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '<td>' .. (frequencyArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '</tr>')
table.insert(rowData, '</tr>')
table.insert(output, table.concat(rowData))
table.insert(output, table.concat(rowData))

Latest revision as of 21:21, 25 January 2025

Template-info.png Documentation

This template generates a list of items present in a dungeon for Etrian Mystery Dungeon.

Usage

{{#invoke:Etrian 1 Dungeon Items table|main
  | category    = 
  | item_1      = 
  | floor_1     = 
  | frequency_1 = 
  ...
  | item_n      = 
  | floor_n     = 
  | frequency_n = 
}}

Example

{{#invoke:Etrian 1 Dungeon Items table|main
  | category    = Scrolls
  | item_1      = Confuse Scroll
  | floor_1     = 1 - 3
  | frequency_1 = 25.00%
  | item_2      = Light Scroll
  | floor_2     = 1 - 3
  | frequency_2 = 25.00%
}}
Scrolls.
Scrolls
EnglishJapaneseFloorsItem
Frequency
Confuse Scroll混乱の巻物1 - 325.00%
Light Scrollあかりの巻物1 - 325.00%

--------------------------------------------------------------------------------
--
--					Module:Etrian 1 Dungeon Items table
--
--------------------------------------------------------------------------------

local p = {}
local mw = require('mw')

function p.main(frame)
	local args = frame.args
	local categoryArg = args["category"]
	local output = {}
	-- Header row
	table.insert(output, '<table class="wikitable" style="text-align: center; width: 100%;">')
	table.insert(output, '<tr>')
	if categoryArg then
		table.insert(output, '<th colspan="4" style="height: 7.5rem;">[[File:Etrian 1 - ' .. frame:preprocess('{{#switch:' .. categoryArg .. ' | Accessories=Accessory | Armors=Armor | Sigils=Sigil | Weapons=Weapon | Shields=Shield | Bottles=Bottle | Scrolls=Scroll | Staves=Staff | Books=Book | Misc.|Others=Ariadne Thread | #default={{{category|}}} }}') .. '.png|alt=' .. (categoryArg or "") .. '.|50x50px]]<br>' .. frame:expandTemplate{title = "Etrian1", args = {(categoryArg or "")}} .. '</th>')
	else
		table.insert(output, '<th colspan="4" style="height: 7.5rem;">' .. frame:expandTemplate{title = "Research"} .. '</th>')
	end
	table.insert(output, '</tr>')
	table.insert(output, '<tr>')
	table.insert(output, '<th style="width: 25%;">English</th>')
	table.insert(output, '<th style="width: 25%;">Japanese</th>')
	table.insert(output, '<th style="width: 25%;">Floors</th>')
	table.insert(output, '<th style="width: 25%;">Item<br>Frequency</th>')
	table.insert(output, '</tr>')
	-- Data rows
	for i = 1, 100 do
		local itemArg = args["item_" .. i]
		local floorArg = args["floor_" .. i]
		local frequencyArg = args["frequency_" .. i]
		if not itemArg and not floorArg and not frequencyArg then
			break -- exit loop when no more rows are found
		end
		local rowData = {}
		table.insert(rowData, '<tr>')
		
		if itemArg then
			table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Etrian1", args = {(itemArg or "")}} .. '</td>')
			table.insert(rowData, '<td>' .. frame:preprocess('{{#invoke:Etrian 1 Item Data Cell|etrian1ItemDataCell|name=' .. (itemArg or "") .. '}}') .. '</td>')
		else
			table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Research"} .. '</td>')
			table.insert(rowData, '<td>' .. frame:expandTemplate{title = "Research"} .. '</td>')
		end
		table.insert(rowData, '<td>' .. (floorArg or frame:expandTemplate{title = "Research"}) .. '</td>')
		table.insert(rowData, '<td>' .. (frequencyArg or frame:expandTemplate{title = "Research"}) .. '</td>')
		table.insert(rowData, '</tr>')
		table.insert(output, table.concat(rowData))
	end
	table.insert(output, '</table>')
	return table.concat(output)
end

return p