Module:Statistic/Legacy/Module

local statistics = {}

--	displayName		|	The name to be displayed in the stat block. |	string --	displayImage	|	The image to be displayed in the stat block. |	string --	displayValue	|	The raw value that is going to be formatted. |	function (accepts the value of the stat, returns number or table of numbers) --	displayUnits	|	The units of the statistic when displayed. |	string or table of strings (note that "%" and Time" have special treatment) --	overview		|	The content of the hover tooltip in the stat block.		|	string (use table.unpack and string.format) --	details			|	The content of the help page.							|	string --	relation		|	The relationship of the statistic vs effectiveness.		|	char or table of chars (either '+', '-' or '') -- -- If tables are used, their size should be equal across displayValue, displayUnits and relation. statistics.basicStatistics = {	["Weapon Slots"] = {		displayName = "Weapon Slots",		displayImage = "WeaponSlots-Stat.png",		displayValue = function(v) return #v end,		displayUnits = "",		overview = "Can equip %s weapons",		details = "This is the maximum number of weapons you can equip onto a module.",		relation = '+',	},

["Hangar Slots"] = { displayName = "Hangar Slots", displayImage = "HangarSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s hangar weapons", details = "This is the maximum number of hangar weapons you can equip onto a module.", relation = '+', },

["Spawner Slots"] = { displayName = "Spawner Slots", displayImage = "SpawnerSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s spawners", details = "This is the maximum number of spawners you can equip onto a module.", relation = '+', },

["Armor Slots"] = { displayName = "Armor Slots", displayImage = "ArmorSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s armor pieces", details = "This is the maximum number of armor pieces you can equip onto a module.", relation = '+', },

["Shield Slots"] = { displayName = "Shield Slots", displayImage = "ShieldSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s shields", details = "This is the maximum number of shields you can equip onto a module.", relation = '+', },

["Ablation Slots"] = { displayName = "Ablation Slots", displayImage = "AblationSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s ablative armor pieces", details = "This is the maximum number of ablative armor pieces you can equip onto a module.", relation = '+', },

["Screen Slots"] = { displayName = "Screen Slots", displayImage = "ScreenSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s screens", details = "This is the maximum number of screens you can equip onto a module.", relation = '+', },

["Special Slots"] = { displayName = "Special Slots", displayImage = "SpecialSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s specials", details = "This is the maximum number of specials you can equip onto a module.", relation = '+', },

["Resistance Slots"] = { displayName = "Resistance Slots", displayImage = "ResistanceSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s resistors", details = "This is the maximum number of resistors you can equip onto a module.", relation = '+', },

["Operation Slots"] = { displayName = "Operation Slots", displayImage = "OperationSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s operations", details = "This is the maximum number of operations you can equip onto a module.", relation = '+', },

["Repair Time"] = { displayName = "Repair Time", displayImage = "Time-Stat.png", displayValue = function(v) return v end, displayUnits = "Time", overview = "%s to fully repair when destroyed", details = "This is the duration of repairing a destroyed module to full health." .. "\n\n" .. "For partially damaged modules, the time required is proportional to the maximum repair time.", relation = '-', },

["Unladen Mass"] = { displayName = "Unladen Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "The module takes up %s of mass", details = "This is the mass of a module.", relation = '-', },

["Maximum Mass"] = { displayName = "Maximum Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "The module can support a maximum of %s", details = "This is the maximum permittable total mass of a module, along with all of its equipment. Overmassed ships cannot be launched.", relation = '+', },

["Weapon Mass"] = { displayName = "Weapon Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Weapons take up %s of mass", details = "This is the mass of weapons on a module.", relation = '-', },

["Hangar Weapon Mass"] = { displayName = "Hangar Weapon Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Hangar weapons take up %s of mass", details = "This is the mass of hangar weapons on a module.", relation = '-', },

["Armor Mass"] = { displayName = "Armor Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Armor takes up %s of mass", details = "This is the mass of armor on a module.", relation = '-', },

["Shield Mass"] = { displayName = "Shield Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Shields take up %s of mass", details = "This is the mass of shields on a module.", relation = '-', },

["Ablative Armor Mass"] = { displayName = "Ablative Armor Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Ablative armor takes up %s of mass", details = "This is the mass of ablative armor on a module.", relation = '-', },

["Screen Mass"] = { displayName = "Screen Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Screens take up %s of mass", details = "This is the mass of screens on a module.", relation = '-', },

["Thruster Mass"] = { displayName = "Thruster Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Thrusters take up %s of mass", details = "This is the mass of thrusters on a module.", relation = '-', },

["Resistor Mass"] = { displayName = "Resistor Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Resistors take up %s of mass", details = "This is the mass of resistors on a module.", relation = '-', },

["Operation Mass"] = { displayName = "Operation Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Operations take up %s of mass", details = "This is the mass of operations on a module.", relation = '-', },

["Spawner Mass"] = { displayName = "Spawner Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Spawners take up %s of mass", details = "This is the mass of spawners on a module.", relation = '-', },

["Other Mass"] = { displayName = "Other Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Other items take up %s of mass", details = "This is the mass of other items on a module.", relation = '-', },

["Maximum Targets"] = { displayName = "Maximum Targets", displayImage = "MaxTargets-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Can fire at up to %s different enemies at once", details = "This is the maximum number of enemies a module can fire upon at the same time.", relation = '', },

["DoT Damage Threshold"] = { displayName = "DoT Damage Threshold", displayImage = "WeaponSlots-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "The enemy receives DoT Stacks for every %s damage taken", details = "This is the amount of damage a module has to inflict on an enemy's health or ablative armor, taking resistance into account, in order to apply the specified number of DoT Stacks." .. "\n\n" .. "DoT Stacks cannot be applied to squadrons nor Altairian Pylon Emitters.", relation = '-', },

["DoT Stacks"] = { displayName = "DoT Stacks", displayImage = "DoT-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "The enemy receives %s DoT Stacks after taking enough damage", details = "This is the number of DoT Stacks a module inflicts on an enemy after dealing enough damage to its health or ablative armor, taking resistance into account." .. "\n\n" .. "DoT Stacks cannot be applied to squadrons nor Altairian Pylon Emitters.", relation = '+', },

["Energy Damage Per Interval"] = { displayName = "Energy Damage Per Interval", displayImage = "En.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Energy Damage per tick for each DoT Stack", details = "This is the amount of Energy Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Explosive Damage Per Interval"] = { displayName = "Explosive Damage Per Interval", displayImage = "Ex.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Explosive Damage per tick for each DoT Stack", details = "This is the amount of Explosive Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Kinetic Damage Per Interval"] = { displayName = "Kinetic Damage Per Interval", displayImage = "Ki.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Kinetic Damage per tick for each DoT Stack", details = "This is the amount of Kinetic Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Alien Damage Per Interval"] = { displayName = "Alien Damage Per Interval", displayImage = "Al.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Alien Damage per tick for each DoT Stack", details = "This is the amount of Alien Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Plasma Damage Per Interval"] = { displayName = "Plasma Damage Per Interval", displayImage = "Pl.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Plasma Damage per tick for each DoT Stack", details = "This is the amount of Plasma Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Blight Damage Per Interval"] = { displayName = "Blight Damage Per Interval", displayImage = "Bl.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Blight Damage per tick for each DoT Stack", details = "This is the amount of Blight Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["Void Damage Per Interval"] = { displayName = "Void Damage Per Interval", displayImage = "Vo.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s Void Damage per tick for each DoT Stack", details = "This is the amount of Void Damage dealt each time a DoT Stack ticks in combat. If multiple DoT Stacks tick at the same time, the damage is summed up across each DoT Stack." .. "\n\n" .. "This damage can be intercepted by shields, ablative armor and screens. In addition, shields and screens do not take damage from DoT.", relation = '+', },

["DoT Interval"] = { displayName = "DoT Interval", displayImage = "Time-Stat.png", displayValue = function(v) return v end, displayUnits = "s", overview = "DoT Stacks tick once every %s", details = "This is the amount of time between each tick of an active DoT Stack.", relation = '-', },

["DoT Duration"] = { displayName = "DoT Duration", displayImage = "Time-Stat.png", displayValue = function(v) return v end, displayUnits = "s", overview = "DoT Stacks last for %s", details = "This is the amount of time a DoT Stack remains active, after which it is removed.", relation = '+', },

["Health"] = { displayName = "Health", displayImage = "ArmorSlots-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Can take %s damage before being destroyed", details = "This is the amount of damage a module can sustain before being destroyed.", relation = '+', },

["Energy Resistance"] = { displayName = "Energy Resistance", displayImage = "En.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Energy Damage", details = "This is the proportion by which incoming Energy Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },	["Explosive Resistance"] = { displayName = "Explosive Resistance", displayImage = "Ex.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Explosive Damage", details = "This is the proportion by which incoming Explosive Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },	["Kinetic Resistance"] = { displayName = "Kinetic Resistance", displayImage = "Ki.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Kinetic Damage", details = "This is the proportion by which incoming Kinetic Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },

["Alien Resistance"] = { displayName = "Alien Resistance", displayImage = "Al.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Alien Damage", details = "This is the proportion by which incoming Alien Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },

["Plasma Resistance"] = { displayName = "Plasma Resistance", displayImage = "Pl.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Explosive Damage", details = "This is the proportion by which incoming Plasma Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },

["Blight Resistance"] = { displayName = "Blight Resistance", displayImage = "Bl.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Blight Damage", details = "This is the proportion by which incoming Blight Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },

["Void Resistance"] = { displayName = "Void Resistance", displayImage = "Vo.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less Void Damage", details = "This is the proportion by which incoming Void Damage to a module is reduced. This is independant of the modifier of the same name.", relation = '+', },

["Counter Chain"] = { displayName = "Counter Chain", displayImage = "CounterChain-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Incoming weapons have their Chain Amount reduced by an additional %s", details = "This is the amount by which the Chain Amount of weapons that hit this module is reduced, in addition to the normal value of 1.", relation = '+', },

["Counter Pierce"] = { displayName = "Counter Pierce", displayImage = "CounterPierce-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Incoming weapons have their Piercing Amount reduced by an additional %s", details = "This is the amount by which the Piercing Amount of weapons that hit this module is reduced, in addition to the normal value of 1.", relation = '+', },

["Counter Ricochet"] = { displayName = "Counter Ricochet", displayImage = "CounterRicochet-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Incoming weapons have their Ricochet Amount reduced by an additional %s", details = "This is the amount by which the Ricochet Amount of weapons that hit this module is reduced, in addition to the normal value of 1.", relation = '+', },

["Weapon Disruption Resistance"] = { displayName = "Weapon Disruption Resistance", displayImage = "WeaponDisruption-Stat.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Incoming Weapon Disruption effects are %s less effective", details = "This is the probability that the Fire Disruption debuff fails to apply on a module. Also the proportion by which the magnitudes of the Charge Disruption and Cooldown Disruption debuffs are reduced. Stacks additively.", relation = '+', },

["XP"] = { displayName = "XP", displayImage = "XP-Stat.png", displayValue = function(v) return v end, displayUnits = "XP", overview = "Contribute %s to the outpust", details = "The XP of a outpost is the sum of the XP values from all of its modules.", relation = '-', },

["Helium-3 Production"] = { displayName = "Helium-3 Production", displayImage = "Helium3.png", displayValue = function(v) return v end, displayUnits = "t/h", overview = "Produce Helium-3 at a rate of %s", details = "This is the rate of generation of Helium-3 of a module.", relation = '+', },

["Mineral Ore Production"] = { displayName = "Mineral Ore Production", displayImage = "MineralOre.png", displayValue = function(v) return v end, displayUnits = "t/h", overview = "Produce Mineral Ore at a rate of %s", details = "This is the rate of generation of Mineral Ore of a module.", relation = '+', },

["Antimatter Production"] = { displayName = "Antimatter Production", displayImage = "Antimatter.png", displayValue = function(v) return v end, displayUnits = "t/h", overview = "Produce Antimatter at a rate of %s", details = "This is the rate of generation of Antimatter of a module.", relation = '+', },

["Coin Production"] = { displayName = "Coin Production", displayImage = "Coins.png", displayValue = function(v) return v end, displayUnits = "coins/day", overview = "Produce Coins at a rate of %s", details = "This is the rate of generation of Coins of a module.", relation = '+', },

["Blood Amber Production"] = { displayName = "Blood Amber Production", displayImage = "BloodAmber.png", displayValue = function(v) return v end, displayUnits = "BA/day", overview = "Produce Blood Amber at a rate of %s", details = "This is the rate of generation of Blood Amber of a module.", relation = '+', },

["Helium-3 Primary Storage"] = { displayName = "Helium-3 Storage", displayImage = "Helium-3.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Helium-3", details = "This is the amount of Helium-3 a module can hold; it contributes to your resource bar.", relation = '+', },

["Mineral Ore Primary Storage"] = { displayName = "Mineral Ore Storage", displayImage = "MineralOre.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Mineral Ore", details = "This is the amount of Mineral Ore a module can hold; it contributes to your resource bar.", relation = '+', },

["Antimatter Primary Storage"] = { displayName = "Antimatter Storage", displayImage = "Antimatter.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Antimatter", details = "This is the amount of Antimatter a module can hold; it contributes to your resource bar.", relation = '+', },

["Blood Amber Primary Storage"] = { displayName = "Blood Amber Storage", displayImage = "BloodAmberStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Can store %s Blood Amber", details = "This is the amount of Blood Amber a module can hold; it contributes to your resource bar.", relation = '+', },

["Helium-3 Secondary Storage"] = { displayName = "Helium-3 Storage", displayImage = "ProductionStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Helium-3", details = "This is the amount of Helium-3 a module can hold; it does not contribute to your resource bar.", relation = '+', },

["Mineral Ore Secondary Storage"] = { displayName = "Mineral Ore Storage", displayImage = "ProductionStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Mineral Ore", details = "This is the amount of Mineral Ore a module can hold; it does not contribute to your resource bar.", relation = '+', },

["Antimatter Secondary Storage"] = { displayName = "Antimatter Storage", displayImage = "ProductionStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can store %s of Antimatter", details = "This is the amount of Antimatter a module can hold; it does not contribute to your resource bar.", relation = '+', },

["Blood Amber Secondary Storage"] = { displayName = "Blood Amber Storage", displayImage = "ProductionStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Can store %s Blood Amber", details = "This is the amount of Blood Amber a module can hold; it does not contribute to your resource bar.", relation = '+', },

["Coin Storage"] = { displayName = "Coin Storage", displayImage = "ProductionStorage-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Can store %s Coins", details = "This is the amount of Coins a module can hold.", relation = '+', },

["Collateral"] = { displayName = "Collateral", displayImage = "Collateral-Stat.png", displayValue = function(v) return v end, displayUnits = "", overview = "Deal %s damage to adjacent modules upon descruction", details = "See Collateral Damage for more details.", relation = '-', }, }

-- These have no innate values. --	displayName		|	The name to be displayed in the stat block. |	string --	displayImage	|	The image to be displayed in the stat block. |	string --	basicStats		|	The keys of the constituent statistics. |	string or table of strings --	overview		|	The content of the hover tooltip in the stat block. |	function (accepts the formatted values, returns string) statistics.compositeStatistics = { ["DoT Details"] = { displayName = "DoT Details", displayImage = "DoT-Stat.png", basicStats = { "DoT Stacks", "DoT Damage Threshold", "Energy Damage Per Interval", "Explosive Damage Per Interval", "Kinetic Damage Per Interval", "Alien Damage Per Interval", "Plasma Damage Per Interval", "Blight Damage Per Interval", "Void Damage Per Interval", "DoT Interval", "DoT Duration" }, overview = function(t) local result = string.format("Apply %s DoT Stacks per %s damage dealt. Each DoT Stack inflicts", t[1], t[2]) if t[3] then result = result .. t[3] .. " Energy," end if t[4] then result = result .. t[4] .. " Explosive," end if t[5] then result = result .. t[5] .. " Kinetic," end if t[6] then result = result .. t[6] .. " Alien," end if t[7] then result = result .. t[7] .. " Plasma," end if t[8] then result = result .. t[8] .. " Blight," end if t[9] then result = result .. t[9] .. " Void," end return result:sub(1, -2) .. string.format(" damage per %s for %s.", t[10], t[11]) end, },

["Damage Resistance"] = { displayName = "Damage Resistance", displayImage = "ResistanceSlot-Stat.png", basicStats = { "Energy Resistance", "Explosive Resistance", "Kinetic Resistance", "Alien Resistance", "Plasma Resistance", "Blight Resistance", "Void Resistance", "Energy Nebula Resistance", "Explosive Nebula Resistance", "Kinetic Nebula Resistance", "Alien Nebula Resistance", "Plasma Nebula Resistance", "Blight Nebula Resistance", "Void Nebula Resistance" }, overview = function(t) local result = "Resist" if t[1] then result = result .. t[1] .. " Energy," end if t[2] then result = result .. t[2] .. " Explosive," end if t[3] then result = result .. t[3] .. " Kinetic," end if t[4] then result = result .. t[4] .. " Alien," end if t[5] then result = result .. t[5] .. " Plasma," end if t[6] then result = result .. t[6] .. " Blight," end if t[7] then result = result .. t[7] .. " Void," end if t[8] then result = result .. t[8] .. " Energy Nebula," end if t[9] then result = result .. t[9] .. " Explosive Nebula," end if t[10] then result = result .. t[10] .. " Kinetic Nebula," end if t[11] then result = result .. t[11] .. " Alien Nebula," end if t[12] then result = result .. t[12] .. " Plasma Nebula," end if t[13] then result = result .. t[13] .. " Blight Nebula," end if t[14] then result = result .. t[14] .. " Void Nebula," end return result:sub(1, -2) .. string.format(" damage.", t[10], t[11]) end, },

["Resource Production Details"] = { displayName = "Resource Production Details", displayImage = "Production-Stat.png", basicStats = { "Helium-3 Production", "Mineral Ore Production", "Antimatter Production" }, overview = function(t) return string.format("Produce resources at a rate of %s Helium-3, %s Mineral Ore and %s Antimatter.", t[1], t[2], t[3]) end, },

["Resource Primary Storage Details"] = { displayName = "Resource Storage Details", displayImage = "Storage-Stat.png", basicStats = { "Helium-3 Primary Storage", "Mineral Ore Primary Storage", "Antimatter Primary Storage" }, overview = function(t) return string.format("Can store %s Helium-3, %s Mineral Ore and %s Antimatter.", t[1], t[2], t[3]) end, }, }

return statistics