Line 5: |
Line 5: |
| local Formatting = require('Module:Formatting') | | local Formatting = require('Module:Formatting') |
| | | |
− | local format = require('Module:Utils').format | + | local U = require('Module:Utils') |
| + | local format = U.format |
| | | |
| local ShipMetaKai = BaseData{ | | local ShipMetaKai = BaseData{ |
Line 24: |
Line 25: |
| |${availability} | | |${availability} |
| |- | | |- |
− | !Implemented on | + | !Implementation |
| |${implementation_date} | | |${implementation_date} |
| |}]], | | |}]], |
Line 38: |
Line 39: |
| !${artist_header} | | !${artist_header} |
| |${artist} | | |${artist} |
− | !Implemented on | + | !Implementation |
| |${implementation_date} | | |${implementation_date} |
| |}]], | | |}]], |
Line 59: |
Line 60: |
| _event_node_name_template = "${year} ${quarter} E-${map}-${node}", | | _event_node_name_template = "${year} ${quarter} E-${map}-${node}", |
| _event_map_name_template = "${year} ${quarter} E-${map}", | | _event_map_name_template = "${year} ${quarter} E-${map}", |
− | _date_template = "${year}-${month}-${day}", | + | _date_template = "${year}/${month:2}/${day:2}", |
| _all_nodes_symbol = "*", | | _all_nodes_symbol = "*", |
| _max_drops_before_collapsible = 6, | | _max_drops_before_collapsible = 6, |
Line 244: |
Line 245: |
| | | |
| function ShipMetaKai:implementation_date() | | function ShipMetaKai:implementation_date() |
− | local implementation_date = self._ship:implementation_date() | + | local form = self._ship |
− | if implementation_date then | + | local next_form = form._remodel_to |
− | self._vars.implementation_date = format{self._date_template, year = implementation_date[1], month = implementation_date[2], day = implementation_date[3]}
| + | local i = 1 |
− | else
| + | local data = {} |
− | self._vars.implementation_date = "??"
| + | local forms = {} |
| + | if form._implementation_date then |
| + | data[format{ |
| + | self._date_template, |
| + | year = form._implementation_date[1], |
| + | month = form._implementation_date[2], |
| + | day = form._implementation_date[3] |
| + | }] = { "Base" } |
| + | end |
| + | while next_form and not forms[next_form] and i < 10 do |
| + | forms[next_form] = true |
| + | form = Ship(next_form) |
| + | if form._implementation_date then |
| + | local d = format{ |
| + | self._date_template, |
| + | year = form._implementation_date[1], |
| + | month = form._implementation_date[2], |
| + | day = form._implementation_date[3] |
| + | } |
| + | local name = form:suffix() and form:suffix() ~= "" and form:suffix() or form:name() |
| + | data[d] = data[d] or {} |
| + | table.insert(data[d], name) |
| + | end |
| + | next_form = form._remodel_to |
| + | i = i + 1 |
| end | | end |
| + | local dates = U.isort(U.keys(data)) |
| + | self._vars.implementation_date = #dates > 0 and U.ijoin(U.imap(dates, function (d) |
| + | return string.format("%s (%s)", d, U.ijoin(data[d], ", ")) |
| + | end), "<br>") or "??" |
| end | | end |
| | | |
Line 300: |
Line 329: |
| return self:format_template() | | return self:format_template() |
| end | | end |
| + | |
| + | function ShipMetaKai.test() |
| + | mw.log(ShipMetaKai:Infobox({ "Ayanami" })) |
| + | mw.log(ShipMetaKai:Infobox({ "U-511" })) |
| + | mw.log(ShipMetaKai:Infobox({ "Zuikaku" })) |
| + | end |
| + | -- p.test() |
| | | |
| return ShipMetaKai | | return ShipMetaKai |