Line 1: |
Line 1: |
− | local Utils = require('Module:Utils') | + | local U = require('Module:Core') |
− | local format = require('Module:Utils').format | + | local format = U.format |
| local getArgs = require('Module:GetArgs') | | local getArgs = require('Module:GetArgs') |
| local Ship = require('Module:Ship') | | local Ship = require('Module:Ship') |
| + | |
| + | -- <span class="toggle" data-target="ship-quotes" data-default="show" style="float:right;cursor:pointer;color:#006cb0;font-weight:bold"><span class="toggle-show">[Collapse]</span><span class="toggle-hide">[Expand]</span></span> |
| + | -- toggle-target-ship-quotes |
| | | |
| local templates = { | | local templates = { |
− | header = [[{| class="wikitable typography-xl-optout" style="width:100%;" | + | header = [[{| class="wikitable" style="width:100%;" |
| ! style="width:10%;" | Event | | ! style="width:10%;" | Event |
| !Japanese | | !Japanese |
Line 12: |
Line 15: |
| footer = "|}", | | footer = "|}", |
| audio_file = "${ship}${suffix}-${line}.ogg", | | audio_file = "${ship}${suffix}-${line}.ogg", |
− | audio_button = [=[<span class="audio-button click-parent">[[Media:${audio_file}|Play]]</span>]=], | + | audio_file_new = "Ship Voice ${ship} ${line}.ogg", |
| + | audio_button = [=[<span class="audio-button">[[File:${audio_file}|Play]]</span>]=], |
| line_link = "[${link} ${line}]", | | line_link = "[${link} ${line}]", |
| remodel_row_style = [[style="border-left: 15px solid #aaa;"]], | | remodel_row_style = [[style="border-left: 15px solid #aaa;"]], |
− | spoiler = [[<span style="background-color:#3a3a3a">${text}</span>]], | + | spoiler = [[<span style="background-color:#3a3a3a;color:#3a3a3a">${text}</span>]], |
| incomplete_style = "background:#fee;", | | incomplete_style = "background:#fee;", |
− | incomplete_category = Utils.category("Ship pages with incomplete quotes"), | + | incomplete_category = U.category("Ship pages with incomplete quotes"), |
| row = [=[|- ${style} class="shipquote" data-shipquote-id="${id}" data-shipquote-form="${form}" | | row = [=[|- ${style} class="shipquote" data-shipquote-id="${id}" data-shipquote-form="${form}" |
| | nowrap="nowrap" |${audio_button} ${line} | | | nowrap="nowrap" |${audio_button} ${line} |
Line 50: |
Line 54: |
| { name = "Air Battle", extra = true, id = 17 }, | | { name = "Air Battle", extra = true, id = 17 }, |
| { name = "Attack", note = "shared with [[Combat#Artillery_Spotting|day]]/[[Combat#Night_Special_Attack_Modifier|night]] special attacks, [[Expedition#Support_expedition|support expedition team]] arrival", id = 16 }, | | { name = "Attack", note = "shared with [[Combat#Artillery_Spotting|day]]/[[Combat#Night_Special_Attack_Modifier|night]] special attacks, [[Expedition#Support_expedition|support expedition team]] arrival", id = 16 }, |
| + | { name = "Special 1", extra = true, id = 900 }, |
| + | { name = "Special 2", extra = true, id = 901 }, |
| + | { name = "Special 3", extra = true, id = 902 }, |
| + | { name = "Special 4", extra = true, id = 903 }, |
| { name = "Night Battle", id = 18 }, | | { name = "Night Battle", id = 18 }, |
| { name = "Night Attack", extra = true, id = 17, note = "shared with air battle", note_types = { 14 } }, | | { name = "Night Attack", extra = true, id = 17, note = "shared with air battle", note_types = { 14 } }, |
Line 57: |
Line 65: |
| { name = "Major Damage", id = 21 }, | | { name = "Major Damage", id = 21 }, |
| { name = "Sunk", spoiler = true, id = 22 }, | | { name = "Sunk", spoiler = true, id = 22 }, |
− | { name = "Special 1", extra = true, id = 900 }, | + | } |
− | { name = "Special 2", extra = true, id = 901 }, | + | |
− | { name = "Special 3", extra = true, id = 902 }, | + | local migrated = { |
− | { name = "Special 4", extra = true, id = 903 }, | + | ["Umikaze Kai Ni"] = true, |
| + | ["Mikura"] = true, |
| + | ["Mikura Kai"] = true, |
| + | ["Grecale"] = true, |
| + | ["Grecale Kai"] = true, |
| + | ["Duca degli Abruzzi"] = true, |
| + | ["Duca degli Abruzzi Kai"] = true, |
| + | ["Janus"] = true, |
| + | ["Janus Kai"] = true, |
| + | ["Asashimo Kai Ni"] = true, |
| + | ["Houston"] = true, |
| + | ["Houston Kai"] = true, |
| + | ["De Ruyter"] = true, |
| + | ["De Ruyter Kai"] = true, |
| + | ["Perth"] = true, |
| + | ["Perth Kai"] = true, |
| + | ["Shinshuu Maru"] = true, |
| + | ["Shinshuu Maru Kai"] = true, |
| + | ["Hirato"] = true, |
| + | ["Hirato Kai"] = true, |
| + | ["Atlanta"] = true, |
| + | ["Atlanta Kai"] = true, |
| + | ["Akishimo"] = true, |
| + | ["Akishimo Kai"] = true, |
| + | ["Yuubari Kai Ni"] = true, |
| + | ["Yuubari Kai Ni Toku"] = true, |
| + | ["Yuubari Kai Ni D"] = true, |
| + | ["Okinami Kai Ni"] = true, |
| + | ["Hiei Kai Ni C"] = true, |
| + | ["Gotland Andra"] = true, |
| + | ["Fletcher Mk.II"] = true, |
| + | ["Jingei"] = true, |
| + | ["Jingei Kai"] = true, |
| + | ["Matsu"] = true, |
| + | ["Matsu Kai"] = true, |
| + | ["I-47"] = true, |
| + | ["I-47 Kai"] = true, |
| + | ["Usugumo"] = true, |
| + | ["Usugumo Kai"] = true, |
| + | ["Kaiboukan No.4"] = true, |
| + | ["Kaiboukan No.4 Kai"] = true, |
| + | ["South Dakota"] = true, |
| + | ["South Dakota Kai"] = true, |
| + | ["Hornet"] = true, |
| + | ["Hornet Kai"] = true, |
| + | ["Yashiro"] = true, |
| + | ["Yashiro Kai"] = true, |
| + | ["Helena"] = true, |
| + | ["Helena Kai"] = true, |
| + | ["Ariake"] = true, |
| + | ["Ariake Kai"] = true, |
| + | ["Kaga Kai Ni"] = true, |
| + | ["Kaga Kai Ni Go"] = true, |
| + | ["Dan Yang"] = true, |
| + | ["Yukikaze Kai Ni"] = true, |
| + | ["Akigumo Kai Ni"] = true, |
| + | ["Scirocco"] = true, |
| + | ["Scirocco Kai"] = true, |
| + | ["Sheffield"] = true, |
| + | ["Sheffield Kai"] = true, |
| + | ["Washington"] = true, |
| + | ["Washington Kai"] = true, |
| } | | } |
| | | |
Line 78: |
Line 147: |
| ["Carrier Kai"] = "CarrierKai", | | ["Carrier Kai"] = "CarrierKai", |
| ["Carrier Kai Ni"] = "CarrierKai2", | | ["Carrier Kai Ni"] = "CarrierKai2", |
| + | ["Andra"] = "Andra", |
| -- Individual ship names | | -- Individual ship names |
| ["Verniy"] = "Verniy", | | ["Verniy"] = "Verniy", |
Line 96: |
Line 166: |
| ["Mk.II"] = "Mk.II", | | ["Mk.II"] = "Mk.II", |
| ["Mk.II Mod.2"] = "Mk.II Mod.2", | | ["Mk.II Mod.2"] = "Mk.II Mod.2", |
| + | ["Dan Yang"] = "Dan Yang", |
| } | | } |
| | | |
Line 160: |
Line 231: |
| complete = false | | complete = false |
| end | | end |
| + | local shipName = use_suffix and remodel or U.ijoin({ship, remodel}, ' ') |
| + | local isMigrated = migrated[shipName] |
| table.insert(result, format{ | | table.insert(result, format{ |
| templates.row, | | templates.row, |
Line 166: |
Line 239: |
| templates.audio_button, | | templates.audio_button, |
| audio_file = format{ | | audio_file = format{ |
− | templates.audio_file, | + | isMigrated and templates.audio_file_new or templates.audio_file, |
− | ship = use_suffix and suffix or ship, | + | ship = isMigrated and shipName or use_suffix and suffix or ship, |
| suffix = use_suffix and "" or suffix, | | suffix = use_suffix and "" or suffix, |
| line = (same or line.name) .. (old and " Old" or ""), | | line = (same or line.name) .. (old and " Old" or ""), |
Line 192: |
Line 265: |
| -- [[Category:Todo]]: collect possible suffixes in insertRow? | | -- [[Category:Todo]]: collect possible suffixes in insertRow? |
| local shipKai = Ship(ship_name .. "/Kai") | | local shipKai = Ship(ship_name .. "/Kai") |
− | return Utils.find(types, ship:type()) or Utils.find(types, shipKai:type()) | + | return U.find(types, ship:type()) or U.find(types, shipKai:type()) |
| end | | end |
| | | |
Line 198: |
Line 271: |
| | | |
| function Quotes.ShipQuotes(frame, args) | | function Quotes.ShipQuotes(frame, args) |
− | args = args or Utils.getTemplateArgs(frame) | + | args = args or U.getTemplateArgs(frame) |
− | args.explicit.ship = args.explicit.ship or args.implicit.pagename or "" | + | args.explicit.ship = args.explicit.ship or args.implicit.basepagename ~= "Sandbox" and args.implicit.basepagename or args.implicit.pagename or "" |
| local result = {} | | local result = {} |
| table.insert(result, format{templates.header, note_style = args.explicit.note_style or ""}) | | table.insert(result, format{templates.header, note_style = args.explicit.note_style or ""}) |
Line 212: |
Line 285: |
| added = added + insertRow(result, "Kai Ni C", args.explicit, line, added) | | added = added + insertRow(result, "Kai Ni C", args.explicit, line, added) |
| added = added + insertRow(result, "Kai Ni D", args.explicit, line, added) | | added = added + insertRow(result, "Kai Ni D", args.explicit, line, added) |
| + | added = added + insertRow(result, "Kai Ni Toku", args.explicit, line, added) |
| + | added = added + insertRow(result, "Kai Ni Go", args.explicit, line, added) |
| added = added + insertRow(result, "Kai B", args.explicit, line, added) | | added = added + insertRow(result, "Kai B", args.explicit, line, added) |
| added = added + insertRow(result, "B Kai", args.explicit, line, added) | | added = added + insertRow(result, "B Kai", args.explicit, line, added) |
Line 219: |
Line 294: |
| added = added + insertRow(result, "Carrier Kai", args.explicit, line, added) | | added = added + insertRow(result, "Carrier Kai", args.explicit, line, added) |
| added = added + insertRow(result, "Carrier Kai Ni", args.explicit, line, added) | | added = added + insertRow(result, "Carrier Kai Ni", args.explicit, line, added) |
| + | added = added + insertRow(result, "Andra", args.explicit, line, added) |
| | | |
| added = added + insertRow(result, "", args.explicit, line, added, false, true) | | added = added + insertRow(result, "", args.explicit, line, added, false, true) |
| added = added + insertRow(result, "Kai", args.explicit, line, added, false, true) | | added = added + insertRow(result, "Kai", args.explicit, line, added, false, true) |
| + | |
| + | added = added + insertRow(result, "Dan Yang", args.explicit, line, added, true) |
| + | |
| added = added + insertRow(result, "Kai Ni", args.explicit, line, added, false, true) | | added = added + insertRow(result, "Kai Ni", args.explicit, line, added, false, true) |
| -- Individual ship names | | -- Individual ship names |
Line 241: |
Line 320: |
| added = added + insertRow(result, "Mk.II", args.explicit, line, added) | | added = added + insertRow(result, "Mk.II", args.explicit, line, added) |
| added = added + insertRow(result, "Mk.II Mod.2", args.explicit, line, added) | | added = added + insertRow(result, "Mk.II Mod.2", args.explicit, line, added) |
| + | |
| | | |
| if line.note and added > 0 and (not line.note_types or checkNoteTypes(args.explicit.ship, line.note_types)) then | | if line.note and added > 0 and (not line.note_types or checkNoteTypes(args.explicit.ship, line.note_types)) then |
Line 253: |
Line 333: |
| end | | end |
| | | |
− | -- Quotes.t = Quotes.ShipQuotes(nil, {explicit = {}, implicit = {pagename = "Ayanami"}})
| + | function Quotes.test() |
| + | return Quotes.ShipQuotes( |
| + | nil, |
| + | { |
| + | explicit = { |
| + | ["Introduction/Kai Ni"] = "?" |
| + | }, |
| + | implicit = { |
| + | pagename = "Umikaze" |
| + | } |
| + | } |
| + | ) |
| + | end |
| | | |
| return Quotes | | return Quotes |