- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Module:ShipSeasonalQuotes
Jump to navigation
Jump to search
Documentation for this module may be created at Module:ShipSeasonalQuotes/doc
local Utils = require("Module:Utils")
local format = require("Module:StringInterpolation").format
local templates = {
header = [[{| class="wikitable typography-xl-optout" style="width:100%;"
!style="width:10%;"|Event
!Japanese
!English
!Note]],
footer = "|}",
row = [=[|-
|nowrap="nowrap"|[[Seasonal/${season}|${season}]]<br><span class="audio-button click-parent">[[Media:${ship} ${season}.ogg|Play]]</span>
|lang="ja"|${ja}
|${en}
|${note}]=],
as_ship = [[''As ${ship}'']]
}
local seasons = {
"Christmas 2013",
"Christmas 2014",
"End of Year 2014",
"New Year 2015",
"New Year 2016",
"Second Anniversary",
"Setsubun 2015",
"Setsubun 2016",
"Setsubun 2017",
"Valentines 2015",
"White Day 2015",
"Rainy Season 2017",
"Fall 2017",
}
local ShipSeasonalQuotes = {}
function addRow(result, seasonData, season, ship, note_prefix)
local shipData = seasonData.ships[ship]
if shipData then
for _, lineData in ipairs(shipData) do
table.insert(result, format{
templates.row,
ship = ship,
season = season,
ja = lineData.ja,
en = lineData.en,
note = (note_prefix or "") .. (note_prefix and lineData.note and "<br>" or "") .. (lineData.note or ""),
})
end
end
end
function ShipSeasonalQuotes.format(frame, args)
args = args or Utils.getTemplateArgs(frame)
local ship = args.explicit["1"] or args.implicit.pagename
local ship2 = args.explicit["2"]
local result = {}
table.insert(result, templates.header)
for _, season in ipairs(seasons) do
local seasonData = require(string.format("Module:Seasonal/%s", season))
if ship2 then
addRow(result, seasonData, season, ship, format{templates.as_ship, ship = ship})
addRow(result, seasonData, season, ship2, format{templates.as_ship, ship = ship2})
else
addRow(result, seasonData, season, ship)
end
end
table.insert(result, templates.footer)
return table.concat(result, "\n")
end
return ShipSeasonalQuotes