Changes

no edit summary
Line 1: Line 1:  
local BaseTable = require('Module:BaseTable')
 
local BaseTable = require('Module:BaseTable')
 
local Formatting = require('Module:Formatting')
 
local Formatting = require('Module:Formatting')
local ResourceIcons = require('Module:ResourceIcons')
+
local ResourceIcons = require('Module:Data/Asset')
 
local Ship = require('Module:Ship')
 
local Ship = require('Module:Ship')
   −
local format = require('Module:StringInterpolation').format
+
local format = require('Module:Core').format
    
local ShipRemodelListKai = BaseTable{
 
local ShipRemodelListKai = BaseTable{
_header_template = [[! colspan=5 | Before Remodel
+
_header_template = [[! colspan=4 | Before Remodel
 
! rowspan=2 style="width:30px;" | ⇒
 
! rowspan=2 style="width:30px;" | ⇒
 
! colspan=3 | After Remodel
 
! colspan=3 | After Remodel
! colspan=2 | Required Resources
+
! colspan=11 | Required Resources
 
|-
 
|-
 
! style="width: 50px;" | No.
 
! style="width: 50px;" | No.
Line 16: Line 16:  
! style="width: 30px;" | Type
 
! style="width: 30px;" | Type
 
! style="width: 30px;" | Level
 
! style="width: 30px;" | Level
! style="width: 30px;" | ${blueprint}
   
! style="width: 50px;" | No.
 
! style="width: 50px;" | No.
 
! style="width: 100px;" | Name
 
! style="width: 100px;" | Name
 
! style="width: 30px;" | Type
 
! style="width: 30px;" | Type
! style="width: 30px; text-align: center; vertical-align: middle; background-color: forestgreen;" | ${fuel}
+
! style="width: 30px; text-align: center; vertical-align: middle; background-color: darkgoldenrod;" | ${ammo}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: darkgoldenrod;" | ${ammo}]],
+
! style="width: 30px; text-align: center; vertical-align: middle; background-color: lightgrey;" | ${steel}
 +
! style="width: 30px;" | ${devmat}
 +
! style="width: 30px;" | ${conmat}
 +
! style="width: 30px;" | ${screw}
 +
! style="width: 30px;" | ${blueprint}
 +
! style="width: 30px;" | ${catapult}
 +
! style="width: 30px;" | ${report}
 +
! style="width: 30px;" | ${gunmat}
 +
! style="width: 30px;" | ${airmat}
 +
! style="width: 30px;" | ${armament}]],
 
_header_template_bottom = [[! style="width: 50px;" | No.
 
_header_template_bottom = [[! style="width: 50px;" | No.
 
! style="width: 100px;" | Name
 
! style="width: 100px;" | Name
 
! style="width: 30px;" | Type
 
! style="width: 30px;" | Type
 
! style="width: 30px;" | Level
 
! style="width: 30px;" | Level
! style="width: 30px;" | ${blueprint}
   
! rowspan=2 style="width:30px;" | ⇒
 
! rowspan=2 style="width:30px;" | ⇒
 
! style="width: 50px;" | No.
 
! style="width: 50px;" | No.
 
! style="width: 100px;" | Name
 
! style="width: 100px;" | Name
 
! style="width: 30px;" | Type
 
! style="width: 30px;" | Type
! style="width: 30px; text-align: center; vertical-align: middle; background-color: forestgreen;" | ${fuel}
   
! style="width: 30px; text-align: center; vertical-align: middle; background-color: darkgoldenrod;" | ${ammo}
 
! style="width: 30px; text-align: center; vertical-align: middle; background-color: darkgoldenrod;" | ${ammo}
 +
! style="width: 30px; text-align: center; vertical-align: middle; background-color: lightgrey;" | ${steel}
 +
! style="width: 30px;" | ${devmat}
 +
! style="width: 30px;" | ${conmat}
 +
! style="width: 30px;" | ${screw}
 +
! style="width: 30px;" | ${blueprint}
 +
! style="width: 30px;" | ${catapult}
 +
! style="width: 30px;" | ${report}
 +
! style="width: 30px;" | ${gunmat}
 +
! style="width: 30px;" | ${airmat}
 +
! style="width: 30px;" | ${armament}
 
|-
 
|-
! colspan=5 | Before Remodel
+
! colspan=4 | Before Remodel
 
! colspan=3 | After Remodel
 
! colspan=3 | After Remodel
! colspan=2 | Required Resources]],
+
! colspan=11 | Required Resources]],
 
_columns = {
 
_columns = {
 
"id",
 
"id",
Line 42: Line 58:  
"type",
 
"type",
 
"remodel_level",
 
"remodel_level",
"remodel_blueprint",
   
"arrow",
 
"arrow",
 
"id_after",
 
"id_after",
Line 49: Line 64:  
"ammo",
 
"ammo",
 
"steel",
 
"steel",
 +
"devmat",
 +
"conmat",
 +
"screw",
 +
"blueprint",
 +
"catapult",
 +
"report",
 +
"gunmat",
 +
"airmat",
 +
"armament",
 
},
 
},
 
_empty_cell = [[| style="text-align: center; vertical-align: middle;" | -]],
 
_empty_cell = [[| style="text-align: center; vertical-align: middle;" | -]],
Line 58: Line 82:  
_arrow = "⇒",
 
_arrow = "⇒",
 
_question_marks = "??",
 
_question_marks = "??",
 +
_fragment_prefix = "shipremodellistkai",
 
}
 
}
   Line 69: Line 94:     
function ShipRemodelListKai:name(ship)
 
function ShipRemodelListKai:name(ship)
return {values = {value = Formatting:format_link(ship:link())}, bg_color = self._transparent, text_align = self._center_align}
+
return {values = {value = Formatting:id_span(tostring(ship:api_id() or mw.ustring.lower(mw.ustring.gsub(ship:name(), "%s+", self._dash))), self._fragment_prefix, Formatting:format_link(ship:link()))}, bg_color = self._transparent, text_align = self._center_align}
 
end
 
end
    
function ShipRemodelListKai:type(ship)
 
function ShipRemodelListKai:type(ship)
return {values = {value = Formatting:format_ship_code(ship:type())}, text_align = self._center_align}
+
return {values = {value = Formatting:format_ship_code(ship:type())}, bg_color = self._transparent, text_align = self._center_align}
 
end
 
end
    
function ShipRemodelListKai:remodel_level(ship)
 
function ShipRemodelListKai:remodel_level(ship)
 
self._remodel_to = ship:remodel_to()
 
self._remodel_to = ship:remodel_to()
 +
self._remodel_is_reversion = false
 
local remodel_level = false
 
local remodel_level = false
 
if self._remodel_to then
 
if self._remodel_to then
 +
if self._remodel_to == ship:remodel_from() then
 +
self._remodel_is_reversion = true
 +
else
 +
self._remodel_is_reversion = false
 +
end
 
self._remodel_to = Ship(self._remodel_to)
 
self._remodel_to = Ship(self._remodel_to)
remodel_level = self._remodel_to:remodel_level()
+
if self._remodel_is_reversion then
 +
remodel_level = ship:remodel_to_level()
 +
else
 +
remodel_level = self._remodel_to:remodel_level()
 +
end
 
end
 
end
return {values = {value = remodel_level == false and self._dash or Formatting:format_stat(remodel_level)}, self._transparent, text_align = self._center_align}
+
return {values = {value = remodel_level == false and self._dash or Formatting:format_stat(remodel_level)}, bg_color = self._transparent, text_align = self._center_align}
end
  −
 
  −
function ShipRemodelListKai:remodel_blueprint()
  −
local value = self._dash
  −
if self._remodel_to then
  −
value = Formatting:format_blueprint_requirement_simple(self._remodel_to:remodel_blueprint(), true)
  −
elseif self._remodel_to == nil then
  −
value = self._question_marks
  −
end
  −
return {values = {value = value}, self._transparent, text_align = self._center_align}
   
end
 
end
    
function ShipRemodelListKai:arrow()
 
function ShipRemodelListKai:arrow()
return {values = {value = self._arrow}, self._transparent, text_align = self._center_align}
+
return {values = {value = self._arrow}, bg_color = self._transparent, text_align = self._center_align}
 
end
 
end
   Line 115: Line 140:  
local name_after = self._remodel_to == nil and self._question_marks or self._dash
 
local name_after = self._remodel_to == nil and self._question_marks or self._dash
 
if self._remodel_to then
 
if self._remodel_to then
name_after = Formatting:format_link(self._remodel_to:link())
+
name_after = Formatting:fragment_link(tostring(self._remodel_to:api_id() or mw.ustring.lower(mw.ustring.gsub(self._remodel_to:name(), "%s+", self._dash))), self._fragment_prefix, self._remodel_to:name())
 
end
 
end
 
return {values = {value = name_after}, bg_color = self._transparent, text_align = self._center_align}
 
return {values = {value = name_after}, bg_color = self._transparent, text_align = self._center_align}
Line 125: Line 150:  
type_after = Formatting:format_ship_code(self._remodel_to:type())
 
type_after = Formatting:format_ship_code(self._remodel_to:type())
 
end
 
end
return {values = {value = type_after}, text_align = self._center_align}
+
return {values = {value = type_after}, bg_color = self._transparent, text_align = self._center_align}
 +
end
 +
 
 +
local function format_remodel_item(item, value)
 +
local special_items = {
 +
blueprint = "blueprint_item",
 +
catapult = "prototype_deck_catapult_item",
 +
report = "report_item",
 +
gunmat = "new_model_gun_mount_improvement_material_item",
 +
airmat = "new_model_aerial_armament_material_item",
 +
armament = "new_model_armament_material_item",
 +
}
 +
value = special_items[item] and Formatting:format_item_requirement(special_items[item], value, true) or value
 +
value = value == true and 1 or value
 +
return value
 +
end
 +
 
 +
function ShipRemodelListKai:remodel_item(ship, item)
 +
local value = self._remodel_to == nil and self._question_marks
 +
or self._remodel_is_reversion and format_remodel_item(item, ship:all_remodel_to_cost()[item])
 +
or self._remodel_to and format_remodel_item(item, self._remodel_to:all_remodel_cost()[item])
 +
return {values = {value = value or self._dash}, bg_color = self._transparent, text_align = self._center_align}
 +
end
 +
 
 +
function ShipRemodelListKai:ammo(ship)
 +
return self:remodel_item(ship, 'ammo')
 +
end
 +
 
 +
function ShipRemodelListKai:steel(ship)
 +
return self:remodel_item(ship, 'steel')
 +
end
 +
 
 +
function ShipRemodelListKai:devmat(ship)
 +
return self:remodel_item(ship, 'devmat')
 +
end
 +
 
 +
function ShipRemodelListKai:conmat(ship)
 +
return self:remodel_item(ship, 'conmat')
 +
end
 +
 
 +
function ShipRemodelListKai:screw(ship)
 +
return self:remodel_item(ship, 'screw')
 +
end
 +
 
 +
function ShipRemodelListKai:blueprint(ship)
 +
return self:remodel_item(ship, 'blueprint')
 +
end
 +
 
 +
function ShipRemodelListKai:catapult(ship)
 +
return self:remodel_item(ship, 'catapult')
 +
end
 +
 
 +
function ShipRemodelListKai:report(ship)
 +
return self:remodel_item(ship, 'report')
 +
end
 +
 
 +
function ShipRemodelListKai:gunmat(ship)
 +
return self:remodel_item(ship, 'gunmat')
 
end
 
end
   −
function ShipRemodelListKai:ammo()
+
function ShipRemodelListKai:airmat(ship)
local ammo = self._remodel_to == nil and self._question_marks or self._dash
+
return self:remodel_item(ship, 'airmat')
if self._remodel_to then
  −
ammo = Formatting:format_ship_code(self._remodel_to:remodel_cost().ammo)
  −
end
  −
return {values = {value = ammo}, text_align = self._center_align}
   
end
 
end
   −
function ShipRemodelListKai:steel()
+
function ShipRemodelListKai:armament(ship)
local steel = self._remodel_to == nil and self._question_marks or self._dash
+
return self:remodel_item(ship, 'armament')
if self._remodel_to then
  −
steel = Formatting:format_ship_code(self._remodel_to:remodel_cost().steel)
  −
end
  −
return {values = {value = steel}, text_align = self._center_align}
   
end
 
end
   Line 150: Line 224:  
function ShipRemodelListKai:create_header()
 
function ShipRemodelListKai:create_header()
 
local header_icons = {
 
local header_icons = {
 +
ammo = ResourceIcons.ammo,
 +
steel = ResourceIcons.steel,
 +
devmat = ResourceIcons.devmat,
 +
conmat = ResourceIcons.instant_construction,
 +
screw = ResourceIcons.screw,
 
blueprint = ResourceIcons.blueprint,
 
blueprint = ResourceIcons.blueprint,
fuel = ResourceIcons.fuel,
+
catapult = ResourceIcons.prototype_deck_catapult,
ammo = ResourceIcons.ammo,
+
report = ResourceIcons.report,
 +
gunmat = ResourceIcons.new_model_gun_mount_improvement_material,
 +
airmat = ResourceIcons.new_model_aerial_armament_material,
 +
armament = ResourceIcons.new_model_armament_material,
 
}
 
}
 
for key, value in pairs(header_icons) do
 
for key, value in pairs(header_icons) do
header_icons[key] = Formatting:format_image{value, caption = Formatting:format_resource_name(key), size = key == "blueprint" and "x18px" or nil}
+
local title = Formatting:format_resource_name(key)
 +
header_icons[key] = Formatting:format_image{value, caption = title, link = title, size = "24px"}
 
end
 
end
 
self._header = format(self._header_template, header_icons)
 
self._header = format(self._header_template, header_icons)
 
self._header_bottom = format(self._header_template_bottom, header_icons)
 
self._header_bottom = format(self._header_template_bottom, header_icons)
 +
end
 +
 +
function ShipRemodelListKai:test()
 +
mw.log(ShipRemodelListKai:Table({iterator = 'shipsByType', type = '6', sort = '_class', listBase = 'true'}))
 
end
 
end
    
return ShipRemodelListKai
 
return ShipRemodelListKai
cssedit, gkautomate
6,941

edits