Line 32: |
Line 32: |
| end | | end |
| | | |
− | local tableHeaderFriend = [=[ {|class="wikitable" style="text-align:center" | + | local tableHeaderFriend = [=[{|class="wikitable" style="text-align:center" |
| !Ship | | !Ship |
| !Lv. | | !Lv. |
Line 90: |
Line 90: |
| | | |
| local function renderFriend(args, frame) | | local function renderFriend(args, frame) |
− | local data = loadData('Fleet/Friend/' .. args.friend) | + | -- local data = loadData('Fleet/Friend/' .. args.friend) |
| + | local success, data = _.requireModule('Data/Fleet/Friend/' .. args.friend) |
| + | if not success then |
| + | return "''No data''" |
| + | end |
| local groups = {} | | local groups = {} |
− | for _, e in pairs(data) do | + | for i, e in pairs(data) do |
− | local fleetType = getFleetType(e.fleet) | + | if not args.map or _.ifind(e.maps, args.map) then |
− | groups[fleetType] = groups[fleetType] or {}
| + | local fleetType = getFleetType(e.fleet) |
− | table.insert(groups[fleetType], e)
| + | groups[fleetType] = groups[fleetType] or {} |
| + | table.insert(groups[fleetType], e) |
| + | end |
| end | | end |
| local result = {} | | local result = {} |
| table.insert(result, '{{#tag:tabber|') | | table.insert(result, '{{#tag:tabber|') |
− | for fleetType, fleets in pairs(groups) do | + | for i, fleetType in ipairs(_.isort(_.keys(groups))) do |
| + | local fleets = groups[fleetType] |
| table.sort(fleets, function(a, b) | | table.sort(fleets, function(a, b) |
− | return #(a.fleet) < #(b.fleet) | + | local l1 = table.getn(a.fleet) |
| + | local l2 = table.getn(b.fleet) |
| + | local ships1 = _.ijoin(_.imap(a.fleet, function (e) return e.ship end), ', ') |
| + | local ships2 = _.ijoin(_.imap(b.fleet, function (e) return e.ship end), ', ') |
| + | if ships1 == ships2 then |
| + | return l1 < l2 |
| + | end |
| + | return ships1 < ships2 |
| end) | | end) |
| table.insert(result, string.format('{{!}}-{{!}} %s =', fleetType)) | | table.insert(result, string.format('{{!}}-{{!}} %s =', fleetType)) |
| table.insert(result, '<tabber>') | | table.insert(result, '<tabber>') |
| for i, fleet in ipairs(fleets) do | | for i, fleet in ipairs(fleets) do |
− | table.insert(result, string.format('|-| %s =\n' .. tableHeaderFriend, 'Variant ' .. i)) | + | table.insert(result, string.format('|-| %s =', 'Variant ' .. i)) |
| + | if table.getn(fleet.notes) > 0 then |
| + | table.insert(result, _.ijoin(fleet.notes, '<br>')) |
| + | end |
| + | table.insert(result, tableHeaderFriend) |
| for j, ship in ipairs(fleet.fleet) do | | for j, ship in ipairs(fleet.fleet) do |
| table.insert(result, string.format( | | table.insert(result, string.format( |