- 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 16: | Line 16: | ||
| colspan="${ja_colspan}" | <span lang="ja" style="font-family: sans-serif;">${ja}</span> | | colspan="${ja_colspan}" | <span lang="ja" style="font-family: sans-serif;">${ja}</span> | ||
${en_cell}| ${note}]=], | ${en_cell}| ${note}]=], | ||
+ | note = [[|- | ||
+ | | colspan="5" |${note}"]], | ||
} | } | ||
local lines = { | local lines = { | ||
"Introduction", "Library", "Secretary 1", "Secretary 2", "Secretary 3", "Idle", "Secretary Married", "Wedding", | "Introduction", "Library", "Secretary 1", "Secretary 2", "Secretary 3", "Idle", "Secretary Married", "Wedding", | ||
− | "Looking At Scores", "Joining A Fleet", "Equipment 1", "Equipment 2", "Equipment 3", "Supply", | + | "Looking At Scores", "Joining A Fleet", "Equipment 1", "Equipment 2", "Equipment 3", "Supply", {extra = "Modernization"}, |
"Docking Minor", "Docking Major", "Docking Complete", "Construction", | "Docking Minor", "Docking Major", "Docking Complete", "Construction", | ||
"Returning From Sortie", "Starting A Sortie", "Battle Start", "Attack", "Night Battle", "Night Attack", "MVP", | "Returning From Sortie", "Starting A Sortie", "Battle Start", "Attack", "Night Battle", "Night Attack", "MVP", | ||
Line 26: | Line 28: | ||
} | } | ||
− | function insertRow(result, remodel, args, line) | + | local notes = { |
+ | ["Equipment 3"] = "Equipment 3 is shared with expedition selection, resource collection, instant repair and development.", | ||
+ | ["Night Attack"] = "Night attack is shared with [[Combat#Artillery_Spotting|Artillery Spotting]], [[Combat#Night_Special_Attack_Modifier|Night Special Attack]] and [[Expedition#Support_expedition|support expedition team]] arrival.", | ||
+ | ["Modernization"] = "Modernization is shared with remodeling line.", | ||
+ | } | ||
+ | |||
+ | function insertRow(result, remodel, args, line, extra) | ||
local remodel_string = remodel == 0 and "" or "/" .. remodel | local remodel_string = remodel == 0 and "" or "/" .. remodel | ||
local ja, en, note = args[line .. remodel_string], args[line .. remodel_string .. "/En"], args[line .. remodel_string .. "/Note"] | local ja, en, note = args[line .. remodel_string], args[line .. remodel_string .. "/En"], args[line .. remodel_string .. "/Note"] | ||
− | if remodel == 0 or ja or en or note then | + | local jaEn = args[line .. remodel_string .. "/Both"] |
+ | if remodel == 0 and not extra or ja or en or note then | ||
table.insert(result, format{ | table.insert(result, format{ | ||
templates.row, | templates.row, | ||
Line 39: | Line 48: | ||
ship = args.ship, | ship = args.ship, | ||
suffix = ({[0] = "", [1] = "Kai", [2] = "Kai2"})[remodel], | suffix = ({[0] = "", [1] = "Kai", [2] = "Kai2"})[remodel], | ||
− | line = line | + | line = line, |
}, | }, | ||
}, | }, | ||
line = line, | line = line, | ||
ja = ja or "", | ja = ja or "", | ||
− | ja_colspan = | + | ja_colspan = jaEn and "2" or "1", |
− | en_cell = | + | en_cell = jaEn and "" or "|" .. (en or "") .. "\n", |
note = note or "", | note = note or "", | ||
}) | }) | ||
+ | return 1 | ||
end | end | ||
+ | return 0 | ||
end | end | ||
Line 58: | Line 69: | ||
table.insert(result, templates.header) | table.insert(result, templates.header) | ||
for _, line in pairs(lines) do | for _, line in pairs(lines) do | ||
− | insertRow(result, 0, args, line) | + | local extra, line = line.extra and true or false, line.extra or line |
− | insertRow(result, 1, args, line) | + | local added = insertRow(result, 0, args, line, extra) |
− | insertRow(result, 2, args, line) | + | added = added + insertRow(result, 1, args, line, extra) |
+ | added = added + insertRow(result, 2, args, line, extra) | ||
+ | local note = notes[line] | ||
+ | if note and added > 0 then | ||
+ | table.insert(result, format{templates.note, note = note}) | ||
+ | end | ||
end | end | ||
table.insert(result, templates.footer) | table.insert(result, templates.footer) |
Revision as of 05:22, 22 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>]=],
first_row_style = [[style=""]],
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 = {
"Introduction", "Library", "Secretary 1", "Secretary 2", "Secretary 3", "Idle", "Secretary Married", "Wedding",
"Looking At Scores", "Joining A Fleet", "Equipment 1", "Equipment 2", "Equipment 3", "Supply", {extra = "Modernization"},
"Docking Minor", "Docking Major", "Docking Complete", "Construction",
"Returning From Sortie", "Starting A Sortie", "Battle Start", "Attack", "Night Battle", "Night Attack", "MVP",
"Minor Damage 1", "Minor Damage 2", "Major Damage", "Sunk",
}
local notes = {
["Equipment 3"] = "Equipment 3 is shared with expedition selection, resource collection, instant repair and development.",
["Night Attack"] = "Night attack is shared with [[Combat#Artillery_Spotting|Artillery Spotting]], [[Combat#Night_Special_Attack_Modifier|Night Special Attack]] and [[Expedition#Support_expedition|support expedition team]] arrival.",
["Modernization"] = "Modernization is shared with remodeling line.",
}
function insertRow(result, remodel, args, line, extra)
local remodel_string = remodel == 0 and "" or "/" .. remodel
local ja, en, note = args[line .. remodel_string], args[line .. remodel_string .. "/En"], args[line .. remodel_string .. "/Note"]
local jaEn = args[line .. remodel_string .. "/Both"]
if remodel == 0 and not extra or ja or en or note then
table.insert(result, format{
templates.row,
style = remodel == 0 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 = ({[0] = "", [1] = "Kai", [2] = "Kai2"})[remodel],
line = line,
},
},
line = line,
ja = ja or "",
ja_colspan = jaEn and "2" or "1",
en_cell = jaEn and "" or "|" .. (en or "") .. "\n",
note = note or "",
})
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 extra, line = line.extra and true or false, line.extra or line
local added = insertRow(result, 0, args, line, extra)
added = added + insertRow(result, 1, args, line, extra)
added = added + insertRow(result, 2, args, line, extra)
local note = notes[line]
if note and added > 0 then
table.insert(result, format{templates.note, note = note})
end
end
table.insert(result, templates.footer)
return table.concat(result, "\n")
end
return Quotes