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['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'
}
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.