• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Changes

Jump to navigation Jump to search
Max-width added to prevent stretch
Line 3: Line 3:  
local view = require('Module:View')
 
local view = require('Module:View')
 
local data = require('Module:Data/Expedition')
 
local data = require('Module:Data/Expedition')
 +
 +
local shipCodes = {
 +
  [1] = 'DE',
 +
  [2] = 'DD',
 +
  [3] = 'CL',
 +
  [4] = 'CLT',
 +
  [5] = 'CA',
 +
  [6] = 'CAV',
 +
  [7] = 'CVL',
 +
  [8] = 'FBB',
 +
  [9] = 'BB',
 +
  [10] = 'BBV',
 +
  [11] = 'CV',
 +
  [12] = 'B',
 +
  [13] = 'SS',
 +
  [14] = 'SSV',
 +
  [15] = 'AP',
 +
  [16] = 'AV',
 +
  [17] = 'LHA',
 +
  [18] = 'CVB',
 +
  [19] = 'AR',
 +
  [20] = 'AS',
 +
  [21] = 'CT',
 +
  [22] = 'AO',
 +
}
    
local backgrounds = {
 
local backgrounds = {
Line 15: Line 40:     
local template = [=[|-
 
local template = [=[|-
|style="${style}"|${id}
+
|style="${style}" nowrap|${id}
 
|style="${style}"|${name}
 
|style="${style}"|${name}
 
|style="${style}"|${time}
 
|style="${style}"|${time}
Line 28: Line 53:     
local template2 = [=[|-
 
local template2 = [=[|-
|style="${style}"|${id}
+
|style="${style}" nowrap|${id}
 
|style="${style}"|${name}
 
|style="${style}"|${name}
 
|style="${style}"|${time}
 
|style="${style}"|${time}
Line 37: Line 62:  
|style="${style}"|${fuel_cost}
 
|style="${style}"|${fuel_cost}
 
|style="${style}"|${ammo_cost}]=]
 
|style="${style}"|${ammo_cost}]=]
 +
 +
local template3 = [=[|-
 +
|style="${style}" nowrap|${id}
 +
|style="${style}"|${name}
 +
|style="${style}"|${time}
 +
|style="${style}" colspan="10"|${desc}]=]
    
-- todo: use modules
 
-- todo: use modules
Line 69: Line 100:  
}
 
}
   −
local tableHeader = [=[<div style="width:90%;margin-left:20px">
+
local tableHeader = [=[<div style="max-width:1400px;width:90%;margin-left:20px">
 
{|style="width:100%"
 
{|style="width:100%"
 
|style="width:50px"|[[File:${icon}.png|link=]]
 
|style="width:50px"|[[File:${icon}.png|link=]]
Line 75: Line 106:  
|}
 
|}
 
</div>
 
</div>
<div style="position:relative;border:solid 1px lightgray;width:95%;border-radius:10px;padding:10px;margin:10px;margin-top:0px">
+
<div style="position:relative;border:solid 1px lightgray;max-width:1500px;width:95%;border-radius:10px;padding:10px;margin:10px;margin-top:0px">
{|style="margin:0 auto;radius:10px;cellpadding:10px;width:100%" cellspacing="0"
+
{|style="margin:0 auto;radius:10px;cellpadding:10px;width:100%" cellspacing="0" class="sortable"
 
!style="cellpadding:10px;width:4%;" |#
 
!style="cellpadding:10px;width:4%;" |#
 
!style="cellpadding:10px;width:24%;" |Name
 
!style="cellpadding:10px;width:24%;" |Name
 
!style="cellpadding:10px;" |Time
 
!style="cellpadding:10px;" |Time
!style="cellpadding:10px;width:1px;" rowspan="100" |
   
]=]
 
]=]
    
local tableHeader2 = [=[!style="cellpadding:10px;width:7%;" |HQ
 
local tableHeader2 = [=[!style="cellpadding:10px;width:7%;" |HQ
 
!style="cellpadding:10px;width:7%;" |Ship
 
!style="cellpadding:10px;width:7%;" |Ship
!style="cellpadding:10px;width:1px;" rowspan="100" |
   
!style="cellpadding:10px;width:7%;" |[[File:Fuel.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Fuel.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Ammunition.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Ammunition.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Steel.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Steel.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Bauxite.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" |[[File:Bauxite.png|30px|link=]]
!style="cellpadding:10px;width:1px;" rowspan="100" |
   
!style="cellpadding:10px;width:20%;" colspan="2" |Rewards
 
!style="cellpadding:10px;width:20%;" colspan="2" |Rewards
|-
  −
|style="background:gray;" colspan="14"|
   
]=]
 
]=]
    
local tableHeader2Req = [=[!style="cellpadding:10px;width:7%;"|Σ(Lv)
 
local tableHeader2Req = [=[!style="cellpadding:10px;width:7%;"|Σ(Lv)
 
!style="cellpadding:10px;width:7%;" align="center"|[[File:Flagship icon.png|link=]]
 
!style="cellpadding:10px;width:7%;" align="center"|[[File:Flagship icon.png|link=]]
!style="cellpadding:10px;width:1px;" rowspan="100"|
+
!style="cellpadding:10px;width:21%;" align="center"|Requirements
!style="cellpadding:10px;width:21%;" align="center"|Minimum Fleet Size
   
!style="cellpadding:10px;width:7%;" align="center"|[[File:Drum.png|30px|link=]]
 
!style="cellpadding:10px;width:7%;" align="center"|[[File:Drum.png|30px|link=]]
!style="cellpadding:10px;width:1px;" rowspan="100"|
   
!style="cellpadding:10px;width:10%;" align="center"|[[File:Fuel.png|30px|link=]]
 
!style="cellpadding:10px;width:10%;" align="center"|[[File:Fuel.png|30px|link=]]
 
!style="cellpadding:10px;width:10%;" align="center"|[[File:Ammunition.png|30px|link=]]
 
!style="cellpadding:10px;width:10%;" align="center"|[[File:Ammunition.png|30px|link=]]
 
]=]
 
]=]
 +
 +
-- !style="cellpadding:10px;width:1px;" rowspan="100" class="unsortable"|
    
local function pad(n)
 
local function pad(n)
Line 115: Line 141:     
local function tooltip(text, title)
 
local function tooltip(text, title)
   return F:tooltip2(text, title:gsub('<br>', ';;'), ';;')
+
   return string.format('<span title="%s" style="cursor:help;border-bottom:1px dotted">%s</span>', title:gsub('<br>', "&#10;"), text)
 
end
 
end
   Line 121: Line 147:     
local itemFiles = {
 
local itemFiles = {
   [1] = 'Instant_repair.jpg',
+
   [1] = 'Item Icon Instant Repair Material.png',
   [2] = 'Instant_construction.jpg',
+
   [2] = 'Item Icon Instant Construction Material.png',
   [3] = 'Development_material.jpg',
+
   [3] = 'Item Icon Development Material.png',
   [4] = 'Improvement_material.png',
+
   [4] = 'Item Icon Improvement Material.png',
   [10] = 'Furniture_box_small.png',
+
   [10] = 'Item Icon Furniture Box (Small).png',
   [11] = 'Furniture_box_medium.png',
+
   [11] = 'Item Icon Furniture Box (Medium).png',
   [12] = 'Furniture_box_large.jpg',
+
   [12] = 'Item Icon Furniture Box (Large).png',
 +
  [59] = 'Item Icon Food Supply Ship Irako.png',
 
}
 
}
   Line 138: Line 165:  
   [11] = 'Furniture/Guide#Furniture_coin',
 
   [11] = 'Furniture/Guide#Furniture_coin',
 
   [12] = 'Furniture/Guide#Furniture_coin',
 
   [12] = 'Furniture/Guide#Furniture_coin',
 +
  [59] = 'Fatigue#Food_Supply_Ship_.22Irako.22',
 
}
 
}
   Line 148: Line 176:  
   [11] = 'Medium Furniture Coin Box',
 
   [11] = 'Medium Furniture Coin Box',
 
   [12] = 'Large Furniture Coin Box',
 
   [12] = 'Large Furniture Coin Box',
 +
  [59] = '"Irako"',
 
}
 
}
   Line 160: Line 189:  
end
 
end
   −
local function formatAmount(n, time)
+
local function formatAmount(n, time, reset)
 
   n = tonumber(n)
 
   n = tonumber(n)
   return not n and '??' or tostring(time and U.round(60 * n / time) or n)
+
   if n == 0 then
 +
    return ''
 +
  end
 +
  local r = not n and '??' or tostring(time and U.round(60 * n / time) or n)
 +
  return time and reset == 1 and string.format('<span style="color:grey">%s</span>', r) or r
 
end
 
end
   Line 173: Line 206:  
${requirements}
 
${requirements}
 
</tabber>]=]
 
</tabber>]=]
 +
 +
local diffs = {
 +
  [1] = 'E',
 +
  [2] = 'D',
 +
  [3] = 'C',
 +
  [4] = 'B',
 +
  [5] = 'A',
 +
  [6] = 'S',
 +
  [7] = 'S',
 +
  [8] = 'S',
 +
  [9] = 'S+',
 +
}
 +
 +
local function formatSampleFleet(xs)
 +
  return U.ijoin(U.imap(U.ifilter(xs, function(e) return e > 0 end), function(e) return shipCodes[e] or '??' end), ' ')
 +
end
 +
 +
local function formatRow(args, e, i, hourly, req, supp)
 +
  local id = e.disp_no
 +
  return U.format{
 +
    (supp and template3 or req and template2 or template),
 +
    style = string.format(
 +
    'text-align: center; height: 35px; background: #%s; color:#000',
 +
    i % 2 == 0 and '' or backgrounds[e.maparea_id] or backgrounds[0]
 +
    ),
 +
    id = tooltip(id, 'ID number as displayed in game') .. string.format(' (%s)', diffs[e.difficulty]),
 +
    name = (e.damage_type == 2 and string.format('<span style="color:#b00000">%s</span>', tooltip(e.name, e.details)) or e.damage_type == 1 and string.format('<span style="color:red">%s</span>', tooltip(e.name, e.details)) or tooltip(e.name, e.details)) .. (e.reset_type == 1 and string.format(' (%s)', tooltip('M', 'Monthly expedtion')) or ''),
 +
    time = tooltip(formatTime(e.time), 'Time required for expedition'),
 +
    hq = tooltip(formatAmount(args.explicit[id .. ' hq'], hourly and e.time, e.reset_type), 'Admiral experience gained upon completion from this expedition'),
 +
    ship = tooltip(formatAmount(args.explicit[id .. ' ship'], hourly and e.time, e.reset_type), 'Ship experience gained upon completion from this expedition'),
 +
    fuel = e.win_mat_level[1] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' fuel'], hourly and e.time, e.reset_type), 'Base resources gain from expedition (at 100% ratio)'),
 +
    ammo = e.win_mat_level[2] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' ammo'], hourly and e.time, e.reset_type), 'Base resources gain from expedition (at 100% ratio)'),
 +
    steel = e.win_mat_level[3] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' steel'], hourly and e.time, e.reset_type), 'Base resources gain from expedition (at 100% ratio)'),
 +
    bauxite = e.win_mat_level[4] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' bauxite'], hourly and e.time, e.reset_type), 'Base resources gain from expedition (at 100% ratio)'),
 +
    item1 = e.win_item1[1] > 0 and formatItem(e.win_item1[1], e.win_item1[2]) or '',
 +
    item2 = e.win_item2[1] > 0 and formatItem(e.win_item2[1], e.win_item2[2]) or '',
 +
    sum = formatAmount(args.explicit[id .. ' sum']),
 +
    level = formatAmount(args.explicit[id .. ' level']),
 +
    fleet = (e.reset_type == 1 and 'Monthly expedtion<br>' or '') .. (e.damage_type == 2 and 'Reduces lots of HP<br>' or e.damage_type == 1 and 'Reduces some HP<br>' or '') .. (args.explicit[id .. ' fleet'] or '??') .. string.format('<br>Eg %s', formatSampleFleet(e.sample_fleet)),
 +
    drums = formatAmount(args.explicit[id .. ' drums']),
 +
    fuel_cost = e.use_fuel > 0 and '-' .. 10 * e.use_fuel or '',
 +
    ammo_cost = e.use_bull > 0 and '-' .. 10 * e.use_bull or '',
 +
    desc = string.format('%s', args.explicit[id .. ' desc'] or ''),
 +
  }
 +
end
    
local function formatTable(args, es, hourly, req)
 
local function formatTable(args, es, hourly, req)
 
   local world = tonumber(args.explicit.world)
 
   local world = tonumber(args.explicit.world)
 +
  local supp = args.explicit.support
 
   return U.format{
 
   return U.format{
 
     tableHeader,
 
     tableHeader,
Line 182: Line 261:  
     name = worldNames[world],
 
     name = worldNames[world],
 
   } .. (req and tableHeader2Req or tableHeader2) .. U.joinLines(U.imap(es, function(e, i)
 
   } .. (req and tableHeader2Req or tableHeader2) .. U.joinLines(U.imap(es, function(e, i)
    local id = e.disp_no
+
     return formatRow(args, e, i, hourly, req, supp)
     return U.format{
+
   end)) .. "\n|}\n</div>"
      (req and template2 or template),
  −
      style = string.format(
  −
        'text-align: center; height: 35px; background: #%s; color:#000',
  −
        i % 2 == 0 and '' or backgrounds[e.maparea_id] or backgrounds[0]
  −
      ),
  −
      id = tooltip(id, 'ID number as displayed in game'),
  −
      name = tooltip(e.damage_type == 1 and string.format('<span style="color:red">%s</span>', e.name) or e.name, e.details),
  −
      time = tooltip(formatTime(e.time), 'Time required for expedition'),
  −
      hq = tooltip(formatAmount(args.explicit[id .. ' hq'], hourly and e.time), 'Admiral experience gained upon completion from this expedition'),
  −
      ship = tooltip(formatAmount(args.explicit[id .. ' ship'], hourly and e.time), 'Ship experience gained upon completion from this expedition'),
  −
      fuel = e.win_mat_level[1] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' fuel'], hourly and e.time), 'Base resources gain from expedition (at 100% ratio)'),
  −
      ammo = e.win_mat_level[2] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' ammo'], hourly and e.time), 'Base resources gain from expedition (at 100% ratio)'),
  −
      steel = e.win_mat_level[3] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' steel'], hourly and e.time), 'Base resources gain from expedition (at 100% ratio)'),
  −
      bauxite = e.win_mat_level[4] == 0 and '' or tooltip(formatAmount(args.explicit[id .. ' bauxite'], hourly and e.time), 'Base resources gain from expedition (at 100% ratio)'),
  −
      item1 = e.win_item1[1] > 0 and formatItem(e.win_item1[1], e.win_item1[2]) or '',
  −
      item2 = e.win_item2[1] > 0 and formatItem(e.win_item2[1], e.win_item2[2]) or '',
  −
      sum = args.explicit[id .. ' sum'] or '??',
  −
      level = args.explicit[id .. ' level'] or '??',
  −
      fleet = args.explicit[id .. ' fleet'] or '??',
  −
      drums = args.explicit[id .. ' drums'] or '??',
  −
      fuel_cost = args.explicit[id .. ' fuel cost'] or '??',
  −
      ammo_cost = args.explicit[id .. ' ammo cost'] or '??',
  −
    }
  −
   end)) .. "\n|}"
   
end
 
end
    
local function render(args, frame)
 
local function render(args, frame)
 +
  local id = args.explicit.id
 +
  if id then
 +
    local e = U.ifilter(data, function(e) return e.disp_no == id end)[1]
 +
    return formatRow(args, e, args.explicit.odd and 1 or 0, args.explicit.hourly, args.explicit.requirements, args.explicit.support)
 +
  end
 
   local world = tonumber(args.explicit.world)
 
   local world = tonumber(args.explicit.world)
 
   local es = U.ifilter(data, function(e) return e.maparea_id == world end)
 
   local es = U.ifilter(data, function(e) return e.maparea_id == world end)
advmod, cssedit, janitor, Moderators, prechecked, Widget editors
6,964

edits

Navigation menu