The break-bulk cargo version designed for carrying unprocessed ore reallocates the space of the four front cargo bays to increase the cargo bay capacity. -In-Game Description
local p = {}
local d = require('Module:Data') local dv = require('Module:Data/View') local capiunto = require 'capiunto'
local processedCargoTypes = 6
p.view = {}
p.view['Name'] = dv.title{'key', text='name'} p.view['Make'] = dv.text{'make'}
local nonZero = function(n)
return n and n ~= 0
end
p.view['Processed cargo'] = {
format = function(ship)
local pc = dv.formatNum(ship.processedCargo, 'kg')
local pcc = dv.formatNum(ship.processedCargoCombined, 'kg (combined)')
if nonZero(ship.processedCargo) and nonZero(ship.processedCargoCombined) then
return pc .. ' + ' .. pcc
elseif nonZero(ship.processedCargoCombined) then
return pcc
elseif nonZero(ship.processedCargo) then
return pc
end
end,
sortType = 'number',
sortValue = function(ship)
return ship.processedCargo * processedCargoTypes + ship.processedCargoCombined
end
}
p.view['Processed cargo (tons)'] = {
format = function(ship)
local pc = dv.formatNum(ship.processedCargo/1000, 't')
local pcc = dv.formatNum(ship.processedCargoCombined/1000, 't (combined)')
if nonZero(ship.processedCargo) and nonZero(ship.processedCargoCombined) then
return pc .. ' + ' .. pcc
elseif nonZero(ship.processedCargoCombined) then
return pcc
elseif nonZero(ship.processedCargo) then
return pc
end
end,
sortType = 'number',
sortValue = function(ship)
return ship.processedCargo * processedCargoTypes + ship.processedCargoCombined
end
}
p.view['High-Stress'] = dv.number{'highStress'} p.view['Low-Stress'] = dv.number{'lowStress'} p.view['Drone hardpoints'] = dv.number{'droneHardpoints'} p.view['Docking bays'] = dv.number{'dockingBays'} p.view['Crew'] = dv.number{'crew'} p.view['Engines'] = dv.number{'engines'} p.view['Thrusters'] = dv.number{'thrusters'}
p.view['Dry mass'] = dv.number{'dryMass', unit='kg'}
p.view['Dry mass (tons)'] = {
format = function(ship)
local pc = dv.formatNum(ship.dryMass/1000, 't')
if nonZero(ship.dryMass) then
return pc
elseif nonZero(ship.dryMass) then
return pc
end
end,
sortType = 'number',
sortValue = function(ship)
return ship.drymass
end
}
p.view['Cargo bay'] = dv.number{'cargoBay', unit='m^3'} p.view['EMP shielding'] = dv.number{'empShielding', unit='MJ', omitZero=true} p.view['New price'] = dv.number{'priceNew', unit='E$'} p.view['Stripped hull price'] = dv.number{'hullValue', unit='E$'}
p.view['Hull Width'] = dv.number{'width', unit='m'} p.view['Hull Length'] = dv.number{'length', unit='m'} p.view['Min. Cargo Bay Width'] = dv.number{'minBayWidth', unit='m'}
p.view['Year Produced'] = dv.number{'yearMadeIn'}
p.view['Variant'] = dv.text{'variant'}
for k,v in pairs(p.view) do
v.heading = v.heading or k
end
p.infoboxRows = {
'Make', 'High-Stress', 'Low-Stress', 'Drone hardpoints', 'Docking bays', 'Crew', 'Dry mass', 'Cargo bay', 'Processed cargo', 'New price', 'Hull Length', 'Hull Width', 'Min. Cargo Bay Width', 'Year Produced'
}
p.infobox = function(f)
local key = mw.text.trim(f.args[1])
local data = mw.loadData('Module:Ships/Data')
data = data[key]
local cap = capiunto.create{title=p.view.Name.format(data)}
if f.args.image then
cap:addImage(f.args.image, f.args.caption)
end
for i,viewKey in ipairs(p.infoboxRows) do
local view = p.view[viewKey]
local dataPoint = view.format(data)
-- Skip zeros
if view.sortType == 'number' then
local sortValue = view.sortValue(data)
if sortValue == 0 then
dataPoint = nil
end
end
if dataPoint then
cap:addRow(view.heading, dataPoint)
end
end
return cap
end
p.defaultColumns = {
'Name', 'High-Stress', 'Low-Stress', 'Drone hardpoints', 'Docking bays', 'Crew', 'Dry mass', 'Processed cargo', 'Engines', 'EMP shielding', 'New price', 'Hull Length', 'Hull Width', 'Min. Cargo Bay Width', 'Variant'
}
p.positionalArgs = function(f)
local posArgs = {}
for i,posArg in ipairs(f.args) do
-- positional arguments don't get trimmed
table.insert(posArgs, mw.text.trim(posArg))
end
return posArgs
end
p.list = function(f)
local columns = p.positionalArgs (f)
if table.getn(columns) == 0 then
columns = p.defaultColumns
end
local data = mw.loadData('Module:Ships/Data')
data = d.sort(data, {
d.on(d.path{'baseModelData', 'hullValue'}, d.asc),
d.on(d.path{'baseModelData', 'name'}, d.asc),
d.on(d.path{'isVariant'}, d.asc),
d.on(d.path{'hullValue'}, d.asc),
d.on(d.path{'name'}, d.asc),
})
return dv.displayTable(data, p.view, columns)
end
p.variants = function(f)
local posArgs = p.positionalArgs(f)
local baseModel = table.remove(posArgs, 1)
local columns = posArgs
if table.getn(columns) == 0 then
columns = p.defaultColumns
end
local data = mw.loadData('Module:Ships/Data')
data = d.filter(data, function (ship)
return ship.baseModel == baseModel
end)
data = d.sort(data, {
d.on(d.path{'isVariant'}, d.asc),
d.on(d.path{'hullValue'}, d.asc),
d.on(d.path{'name'}, d.asc),
})
return dv.displayTable(data, p.view, columns)
end
p.minInfoboxRows = {
'High-Stress', 'Low-Stress', 'Drone hardpoints', 'Docking bays', 'Crew', 'Dry mass (tons)', 'Cargo bay', 'Processed cargo (tons)', 'New price'
}
p.minInfobox = function(f)
local key = mw.text.trim(f.args[1])
local data = mw.loadData('Module:Ships/Data')
data = data[key]
local cap = capiunto.create{title=p.view.Name.format(data)}
if f.args.image then
cap:addImage(f.args.image, f.args.caption)
end
for i,viewKey in ipairs(p.minInfoboxRows) do
local view = p.view[viewKey]
local dataPoint = view.format(data)
-- Skip zeros
if view.sortType == 'number' then
local sortValue = view.sortValue(data)
if sortValue == 0 then
dataPoint = nil
end
end
if dataPoint then
cap:addRow(view.heading, dataPoint)
end
end
return cap
end
return pThe Antonoff-Titan K225 Break Bulk variant is a 3rd-party modification to the standard-issue K225. It sacrifices four of the docking bays to increase the internal cargo bay's size. The reduction in the theoretical processed capacity makes it less beneficial to process minerals mid-dive, and instead benefit from the greater capacity for raw ore chunks. The larger cargo bay also makes for lifepods to be less of a clogging issue. The K225-BB will generally spend less time out in the rings for the same value of ore, as processing times aren't an issue and de-clogging isn't as much of a chore.
Notes
- The titan is capable of equipping the largest propellant, ammunition, and nanodrone storages.
- The low processed cargo capacity makes it impractical unless the docking bays are fitted with THICCs
- Alternatively, the docking bays allow installing various light equipment like nanodrones or Point Defense weapons.
