- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "Module:Quotes"
Jump to navigation
Jump to search
m |
|||
Line 19: | Line 19: | ||
${en_cell}| ${note}]=], | ${en_cell}| ${note}]=], | ||
note = [[|- | note = [[|- | ||
− | | colspan="5" |${note}]], | + | | colspan="5" | ⇧ ${note}]], |
} | } | ||
local lines = { | local lines = { | ||
− | "Introduction", "Library", "Secretary 1", "Secretary 2", "Secretary 3", "Idle", "Secretary Married", "Wedding", | + | { name = "Introduction" }, |
− | "Looking At Scores", "Joining A Fleet", "Equipment 1", "Equipment 2", "Equipment 3", "Supply", {extra = " | + | { name = "Library" }, |
− | "Docking Minor", "Docking Major", "Docking Complete", "Construction", | + | { name = "Secretary 1" }, |
− | "Returning From Sortie", "Starting A Sortie", "Battle Start", "Attack", "Night Battle", "Night Attack", "MVP", | + | { name = "Secretary 2" }, |
− | "Minor Damage 1", "Minor Damage 2", "Major Damage", "Sunk", | + | { name = "Secretary 3" }, |
+ | { name = "Idle" }, | ||
+ | { name = "Secretary Married", spoiler = true }, | ||
+ | { name = "Wedding", spoiler = true }, | ||
+ | { name = "Looking At Scores" }, | ||
+ | { name = "Joining A Fleet" }, | ||
+ | { name = "Equipment 1" }, | ||
+ | { name = "Equipment 2" }, | ||
+ | { name = "Equipment 3", note = "shared with expedition selection, resource collection, instant repair and development" }, | ||
+ | { name = "Supply" }, | ||
+ | { name = "Modernization", extra = true, note = "shared with remodeling line (modernization/remodeling lines are only present in [[KanColle Kai]])" }, | ||
+ | { name = "Docking Minor" }, | ||
+ | { name = "Docking Major" }, | ||
+ | { name = "Docking Complete" }, | ||
+ | { name = "Construction" }, | ||
+ | { name = "Returning From Sortie" }, | ||
+ | { name = "Starting A Sortie" }, | ||
+ | { name = "Battle Start" }, | ||
+ | { name = "Attack", note = "shared with [[Combat#Artillery_Spotting|day]]/[[Combat#Night_Special_Attack_Modifier|night]] special attacks, [[Expedition#Support_expedition|support expedition team]] arrival" }, | ||
+ | { name = "Night Battle" }, | ||
+ | { name = "Night Attack" }, | ||
+ | { name = "MVP" }, | ||
+ | { name = "Minor Damage 1" }, | ||
+ | { name = "Minor Damage 2" }, | ||
+ | { name = "Major Damage" }, | ||
+ | { name = "Sunk", spoiler = true }, | ||
} | } | ||
− | local | + | local audio_suffixes = { |
− | [" | + | ["Kai"] = "Kai", |
− | [" | + | ["Kai Ni"] = "Kai2", |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
function format_text(text, line) | function format_text(text, line) | ||
− | return text and | + | return text and line.spoiler and format{templates.spoiler, text = text} or text and text .. format{templates.spoiler, text = text} or "" |
end | end | ||
− | function insertRow(result, remodel, args, line | + | function insertRow(result, remodel, args, line) |
− | local remodel_string = remodel | + | local remodel_string = remodel or "" |
− | local ja, en, note = args[line .. remodel_string], args[line .. remodel_string .. "/En"], args[line .. remodel_string .. "/Note"] | + | local ja, en, note = args[line.name .. remodel_string], args[line.name .. remodel_string .. "/En"], args[line.name .. remodel_string .. "/Note"] |
− | local jaEn = args[line .. remodel_string .. "/Both"] | + | local jaEn = args[line.name .. remodel_string .. "/Both"] |
− | local link = args[line .. remodel_string .. "/Link"] | + | local link = args[line.name .. remodel_string .. "/Link"] |
− | if remodel | + | if not remodel and not extra or jaEn or ja or en or note then |
table.insert(result, format{ | table.insert(result, format{ | ||
templates.row, | templates.row, | ||
− | style = remodel | + | style = not remodel and templates.first_row_style or "", |
audio_button = args.no_audio and "" or format{ | audio_button = args.no_audio and "" or format{ | ||
templates.audio_button, | templates.audio_button, | ||
Line 58: | Line 78: | ||
templates.audio_file, | templates.audio_file, | ||
ship = args.ship, | ship = args.ship, | ||
− | suffix = | + | suffix = audio_suffixes[remodel] or "", |
− | line = line, | + | line = line.name, |
}, | }, | ||
}, | }, | ||
− | line = link and format{templates.line_link, link = link, line = line} or line, | + | line = link and format{templates.line_link, link = link, line = line.name} or line.name, |
ja = format_text(jaEn or ja, line), | ja = format_text(jaEn or ja, line), | ||
ja_colspan = jaEn and "2" or "1", | ja_colspan = jaEn and "2" or "1", | ||
Line 80: | Line 100: | ||
table.insert(result, templates.header) | table.insert(result, templates.header) | ||
for _, line in pairs(lines) do | for _, line in pairs(lines) do | ||
− | + | local added = insertRow(result, nil, args, line) | |
− | local added = insertRow(result, | + | added = added + insertRow(result, "/Kai", args, line) |
− | added = added + insertRow(result, | + | added = added + insertRow(result, "/Kai Ni", args, line) |
− | added = added + insertRow(result, | + | if line.note and added > 0 then |
− | + | table.insert(result, format{templates.note, note = line.note}) | |
− | |||
− | table.insert(result, format{templates.note, note = note}) | ||
end | end | ||
end | end |
Revision as of 19:54, 23 February 2016
Documentation for this module may be created at Module:Quotes/doc
local format = require('Module:StringInterpolation').format
local getArgs = require('Module:GetArgs')
local templates = {
header = [[{| class="wikitable typography-xl-optout" style="width:100%;"
! style="width:10%;" | Event
!Japanese
!English
!Note]],
footer = "|}",
audio_file = "${ship}${suffix}-${line}.ogg",
audio_button = [=[<span class="audio_button">[[Media:${audio_file}|Play]]</span>]=],
line_link = "[${link} ${line}]",
first_row_style = [[style=""]],
spoiler = [[<span style="background-color:#3A3A3A">${text}</span>]],
row = [=[|- ${style}
| nowrap="nowrap" |${audio_button}${line}
| colspan="${ja_colspan}" | <span lang="ja" style="font-family: sans-serif;">${ja}</span>
${en_cell}| ${note}]=],
note = [[|-
| colspan="5" | ⇧ ${note}]],
}
local lines = {
{ name = "Introduction" },
{ name = "Library" },
{ name = "Secretary 1" },
{ name = "Secretary 2" },
{ name = "Secretary 3" },
{ name = "Idle" },
{ name = "Secretary Married", spoiler = true },
{ name = "Wedding", spoiler = true },
{ name = "Looking At Scores" },
{ name = "Joining A Fleet" },
{ name = "Equipment 1" },
{ name = "Equipment 2" },
{ name = "Equipment 3", note = "shared with expedition selection, resource collection, instant repair and development" },
{ name = "Supply" },
{ name = "Modernization", extra = true, note = "shared with remodeling line (modernization/remodeling lines are only present in [[KanColle Kai]])" },
{ name = "Docking Minor" },
{ name = "Docking Major" },
{ name = "Docking Complete" },
{ name = "Construction" },
{ name = "Returning From Sortie" },
{ name = "Starting A Sortie" },
{ name = "Battle Start" },
{ name = "Attack", note = "shared with [[Combat#Artillery_Spotting|day]]/[[Combat#Night_Special_Attack_Modifier|night]] special attacks, [[Expedition#Support_expedition|support expedition team]] arrival" },
{ name = "Night Battle" },
{ name = "Night Attack" },
{ name = "MVP" },
{ name = "Minor Damage 1" },
{ name = "Minor Damage 2" },
{ name = "Major Damage" },
{ name = "Sunk", spoiler = true },
}
local audio_suffixes = {
["Kai"] = "Kai",
["Kai Ni"] = "Kai2",
}
function format_text(text, line)
return text and line.spoiler and format{templates.spoiler, text = text} or text and text .. format{templates.spoiler, text = text} or ""
end
function insertRow(result, remodel, args, line)
local remodel_string = remodel or ""
local ja, en, note = args[line.name .. remodel_string], args[line.name .. remodel_string .. "/En"], args[line.name .. remodel_string .. "/Note"]
local jaEn = args[line.name .. remodel_string .. "/Both"]
local link = args[line.name .. remodel_string .. "/Link"]
if not remodel and not extra or jaEn or ja or en or note then
table.insert(result, format{
templates.row,
style = not remodel and templates.first_row_style or "",
audio_button = args.no_audio and "" or format{
templates.audio_button,
audio_file = format{
templates.audio_file,
ship = args.ship,
suffix = audio_suffixes[remodel] or "",
line = line.name,
},
},
line = link and format{templates.line_link, link = link, line = line.name} or line.name,
ja = format_text(jaEn or ja, line),
ja_colspan = jaEn and "2" or "1",
en_cell = jaEn and "" or "|" .. format_text(en, line) .. "\n",
note = format_text(note, line),
})
return 1
end
return 0
end
local Quotes = {}
function Quotes.ShipQuotes(frame, args)
args = args or getArgs{frame = frame:getParent()}
local result = {}
table.insert(result, templates.header)
for _, line in pairs(lines) do
local added = insertRow(result, nil, args, line)
added = added + insertRow(result, "/Kai", args, line)
added = added + insertRow(result, "/Kai Ni", args, line)
if line.note and added > 0 then
table.insert(result, format{templates.note, note = line.note})
end
end
table.insert(result, templates.footer)
return table.concat(result, "\n")
end
return Quotes