Line 10:
Line 10:
! rowspan=2 style="width:30px;" | ⇒
! rowspan=2 style="width:30px;" | ⇒
! colspan=3 | After Remodel
! colspan=3 | After Remodel
−
! colspan=11 | Required Resources
+
! colspan=12 | Required Resources
|-
|-
! style="width: 50px;" | No.
! style="width: 50px;" | No.
Line 29:
Line 29:
! style="width: 30px;" | ${gunmat}
! style="width: 30px;" | ${gunmat}
! style="width: 30px;" | ${airmat}
! style="width: 30px;" | ${airmat}
−
! style="width: 30px;" | ${armament}]],
+
! style="width: 30px;" | ${armament}
+
! style="width: 30px;" | ${overseas}]],
_header_template_bottom = [[! style="width: 50px;" | No.
_header_template_bottom = [[! style="width: 50px;" | No.
! style="width: 100px;" | Name
! style="width: 100px;" | Name
Line 49:
Line 50:
! style="width: 30px;" | ${airmat}
! style="width: 30px;" | ${airmat}
! style="width: 30px;" | ${armament}
! style="width: 30px;" | ${armament}
+
! style="width: 30px;" | ${overseas}
|-
|-
! colspan=4 | Before Remodel
! colspan=4 | Before Remodel
! colspan=3 | After Remodel
! colspan=3 | After Remodel
−
! colspan=11 | Required Resources]],
+
! colspan=12 | Required Resources]],
_columns = {
_columns = {
"id",
"id",
Line 73:
Line 75:
"airmat",
"airmat",
"armament",
"armament",
+
"overseas",
},
},
_empty_cell = [[| style="text-align: center; vertical-align: middle;" | -]],
_empty_cell = [[| style="text-align: center; vertical-align: middle;" | -]],
Line 103:
Line 106:
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
+
if self._remodel_to == ship:remodel_from() or ship:remodel_from() and self._remodel_to == Ship(ship:remodel_from()):remodel_from() then
self._remodel_is_reversion = true
self._remodel_is_reversion = true
else
else
Line 152:
Line 156:
end
end
−
function ShipRemodelListKai:get_remodel_item_count(ship, item)
+
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",
+
overseas = "latest_overseas_warship_technology_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
local value = self._remodel_to == nil and self._question_marks
−
or self._remodel_is_reversion and ship:all_remodel_to_cost()[item]
+
or self._remodel_is_reversion and format_remodel_item(item, ship:all_remodel_to_cost()[item])
−
or self._remodel_to and self._remodel_to:all_remodel_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}
return {values = {value = value or self._dash}, bg_color = self._transparent, text_align = self._center_align}
end
end
−
−
-- TODO: fancy formatting
−
-- Formatting:format_blueprint_requirement(ship:remodel_to_blueprint(), true)
−
-- Formatting:format_blueprint_requirement(self._remodel_to:remodel_blueprint(), true)
−
-- Formatting:format_catapult_requirement(ship:remodel_to_catapult(), true)
−
-- Formatting:format_catapult_requirement(self._remodel_to:remodel_catapult(), true)
−
-- etc.
function ShipRemodelListKai:ammo(ship)
function ShipRemodelListKai:ammo(ship)
−
return self:get_remodel_item_count(ship, 'ammo')
+
return self:remodel_item(ship, 'ammo')
end
end
function ShipRemodelListKai:steel(ship)
function ShipRemodelListKai:steel(ship)
−
return self:get_remodel_item_count(ship, 'steel')
+
return self:remodel_item(ship, 'steel')
end
end
function ShipRemodelListKai:devmat(ship)
function ShipRemodelListKai:devmat(ship)
−
return self:get_remodel_item_count(ship, 'devmat')
+
return self:remodel_item(ship, 'devmat')
end
end
function ShipRemodelListKai:conmat(ship)
function ShipRemodelListKai:conmat(ship)
−
return self:get_remodel_item_count(ship, 'conmat')
+
return self:remodel_item(ship, 'conmat')
end
end
function ShipRemodelListKai:screw(ship)
function ShipRemodelListKai:screw(ship)
−
return self:get_remodel_item_count(ship, 'screw')
+
return self:remodel_item(ship, 'screw')
end
end
function ShipRemodelListKai:blueprint(ship)
function ShipRemodelListKai:blueprint(ship)
−
return self:get_remodel_item_count(ship, 'blueprint')
+
return self:remodel_item(ship, 'blueprint')
end
end
function ShipRemodelListKai:catapult(ship)
function ShipRemodelListKai:catapult(ship)
−
return self:get_remodel_item_count(ship, 'catapult')
+
return self:remodel_item(ship, 'catapult')
end
end
function ShipRemodelListKai:report(ship)
function ShipRemodelListKai:report(ship)
−
return self:get_remodel_item_count(ship, 'report')
+
return self:remodel_item(ship, 'report')
end
end
function ShipRemodelListKai:gunmat(ship)
function ShipRemodelListKai:gunmat(ship)
−
return self:get_remodel_item_count(ship, 'gunmat')
+
return self:remodel_item(ship, 'gunmat')
end
end
function ShipRemodelListKai:airmat(ship)
function ShipRemodelListKai:airmat(ship)
−
return self:get_remodel_item_count(ship, 'airmat')
+
return self:remodel_item(ship, 'airmat')
end
end
function ShipRemodelListKai:armament(ship)
function ShipRemodelListKai:armament(ship)
−
return self:get_remodel_item_count(ship, 'armament')
+
return self:remodel_item(ship, 'armament')
+
end
+
+
function ShipRemodelListKai:overseas(ship)
+
return self:remodel_item(ship, 'overseas')
end
end
Line 219:
Line 235:
steel = ResourceIcons.steel,
steel = ResourceIcons.steel,
devmat = ResourceIcons.devmat,
devmat = ResourceIcons.devmat,
−
conmat = ResourceIcons.instant_construction_item,
+
conmat = ResourceIcons.instant_construction,
screw = ResourceIcons.screw,
screw = ResourceIcons.screw,
blueprint = ResourceIcons.blueprint,
blueprint = ResourceIcons.blueprint,
Line 227:
Line 243:
airmat = ResourceIcons.new_model_aerial_armament_material,
airmat = ResourceIcons.new_model_aerial_armament_material,
armament = ResourceIcons.new_model_armament_material,
armament = ResourceIcons.new_model_armament_material,
+
overseas = ResourceIcons.latest_overseas_warship_technology,
}
}
for key, value in pairs(header_icons) do
for key, value in pairs(header_icons) do
Line 234:
Line 251:
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