Module:Statistic/Legacy/Ship

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 ship.",		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 ship.", 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 ship.", 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 ship.", 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 ship.", relation = '+', },

["Ablative Armor Slots"] = { displayName = "Ablative Armor Slots", displayImage = "AblativeArmorSlots-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 ship.", 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 ship.", 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 ship.", relation = '+', },

["Trigger Slots"] = { displayName = "Trigger Slots", displayImage = "TriggerSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s triggers", details = "This is the maximum number of triggers you can equip onto a ship.", 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 ship.", 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 ship.", relation = '+', },

["Skin Slots"] = { displayName = "Skin Slots", displayImage = "SkinSlots-Stat.png", displayValue = function(v) return #v end, displayUnits = "", overview = "Can equip %s skin", details = "This is the maximum number of skins you can apply onto a ship.", 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 ship to full health." .. "\n\n" .. "For partially damaged ships, 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 ship takes up %s of mass", details = "This is the mass of a ship.", relation = '-', },

["Maximum Mass"] = { displayName = "Maximum Mass", displayImage = "Mass-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "The ship can support a maximum of %s", details = "This is the maximum permittable total mass of a ship, 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship.", 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 ship can fire upon at the same time." .. "\n\n" .. "Manual targeting overrides this behaviour.", 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 ship 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 ship 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 ship 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 ship is reduced.", 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 ship is reduced.", 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 ship is reduced.", 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 ship is reduced.", 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 ship is reduced.", 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 ship is reduced.", 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 ship is reduced.", relation = '+', },

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

["Alien Nebula Resistance"] = { displayName = "Alien Nebula Resistance", displayImage = "Al-n.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less damage from Alien Nebula", details = "This is the proportion by which incoming Alien Nebula Damage to a ship is reduced.", relation = '+', },

["Plasma Nebula Resistance"] = { displayName = "Plasma Nebula Resistance", displayImage = "Pl-n.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less damage from Plasma Nebula", details = "This is the proportion by which incoming Plasma Nebula Damage to a ship is reduced.", relation = '+', },

["Blight Nebula Resistance"] = { displayName = "Blight Nebula Resistance", displayImage = "Bl-n.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less damage from Blight Nebula", details = "This is the proportion by which incoming Blight Nebula Damage to a ship is reduced.", relation = '+', },

["Void Nebula Resistance"] = { displayName = "Void Nebula Resistance", displayImage = "Vo-n.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Take %s less damage from Void Nebula", details = "This is the proportion by which incoming Void Nebula Damage to a ship is reduced.", 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 ship 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 ship 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 ship is reduced, in addition to the normal value of 1.", relation = '+', },

["Stasis Resistance"] = { displayName = "Stasis Resistance", displayImage = "Stasis-Stat.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Incoming Stasis effects are %s less effective", details = "This is the proportion by which the magnitude the Stasis debuff is reduced. Stacks additively." .. "\n\n" .. "A value over 100% will actually result in the ship going faster when affected by the debuff.", 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 ship. Also the proportion by which the magnitudes of the Charge Disruption and Cooldown Disruption debuffs are reduced. Stacks additively.", relation = '+', },

["Firing Arc"] = { displayName = "Firing Arc", displayImage = "FiringArc-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The firing arc is %s wide", details = "This is the width of a ship's firing arc.", relation = '+', },	["Firing Arc Offset"] = { displayName = "Firing Arc Offset", displayImage = "FiringArc-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The firing arc is offset %s clockwise from the heading", details = "This is the angle that the centre of the firing arc makes with the heading of a ship. If this is anticlockwise from the heading, a negative value is displayed.", relation = '', },	["Left Firing Arc"] = { displayName = "Firing Arc", displayImage = "FiringArcLeft-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The left firing arc is %s wide", details = "This is the width of a ship's left firing arc.", relation = '+', },

["Left Firing Arc Offset"] = { displayName = "Left Firing Arc", displayImage = "FiringArcLeft-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The left firing arc is offset %s clockwise from the heading", details = "This is the angle that the centre of the left firing arc makes with the heading of a ship. If this is anticlockwise from the heading, a negative value is displayed.", relation = '', },

["Right Firing Arc"] = { displayName = "Right Firing Arc", displayImage = "FiringArcRight-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The right firing arc is %s wide", details = "This is the width of a ship's right firing arc.", relation = '+', },

["Right Firing Arc Offset"] = { displayName = "Right Firing Arc", displayImage = "FiringArcRight-Stat.png", displayValue = function(v) return v end, displayUnits = "deg", overview = "The right firing arc is offset %s clockwise from the heading", details = "This is the angle that the centre of the riight firing arc makes with the heading of a ship. If this is anticlockwise from the heading, a negative value is displayed.", relation = '', },

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

["Cargo"] = { displayName = "Cargo", displayImage = "Storage-Stat.png", displayValue = function(v) return v end, displayUnits = "t", overview = "Can hold %s of resources", details = "This is the amount of resources a ship can hold." .. "\n\n" .. "When attacking other player outposts, the amount is temporarily increased by a factor of 5.", relation = '+', },

["Speed"] = { displayName = "Speed", displayImage = "ShipSpeed-Stat.png", displayValue = function(v) return v end, displayUnits = "m/s", overview = "Travel %s forwards in combat", details = "This is the maximum linear speed a ship can travel directly ahead.", relation = '+', },

["Turning"] = { displayName = "Turning", displayImage = "Turning-Stat.png", displayValue = function(v) return v end, displayUnits = "deg/s", overview = "Rotate %s in combat", details = "This is the rotational speed of a ship. The rotation accelerates to maximum instantaneously.", relation = '+', },

["Strafe"] = { displayName = "Strafe", displayImage = "Strafe-Stat.png", displayValue = function(v) return v end, displayUnits = "m/s", overview = "Travel %s sideways in combat", details = "This is the maximum linear speed a ship can travel exactly perpendicular to its heading.", relation = '+', },

["Rear Speed"] = { displayName = "Rear Speed", displayImage = "RearSpeed-Stat.png", displayValue = function(v) return v end, displayUnits = "m/s", overview = "Travel %s backwards in combat", details = "This is the maximum linear speed a ship can travel exactly opposite to its heading.", relation = '+', },

["Acceleration"] = { displayName = "Acceleration", displayImage = "Acceleration-Stat.png", displayValue = function(v) return v end, displayUnits = "m/s^2", overview = "Accelerate at %s in combat", details = "This is the linear acceleration of a ship.", relation = '+', },

["Sector Speed"] = { displayName = "Sector Speed", displayImage = "ShipSpeed-Stat.png", displayValue = function(v) return v end, displayUnits = "AU/h", overview = "Travel %s on the map", details = "This is the speed a ship can travel in planet and sector space." .. "\n\n" .. "A fleet's sector speed is determined by the ship with the slowest sector speed.", relation = '+', },

["Resurgence"] = { displayName = "Resurgence", displayImage = "Resurgence-Stat.png", displayValue = function(v) return v * 100 end, displayUnits = "%", overview = "Recover %s of damage taken upon PvP fleet victory", details = "This is the proportion by which damage sustained in a victory against another player's fleet is recovered." .. "\n\n" .. "This only applies to damage taken in the current battle; it does not recover damage taken from previous battles.", 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 Details"] = { displayName = "Damage Resistance Details", 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, },

["Ship Speed Details"] = { displayName = "Ship Speed Details", displayImage = "ShipSpeed-Stat.png", basicStats = { "Speed", "Turning", "Strafe", "Rear Speed", "Acceleration", "Sector Speed" }, overview = function(t) return string.format("In combat, travel %s forwards, %s sideways, %s backwards and accelerate at %s; turn at %s. On the map, travel at %s.", t[1], t[3], t[4], t[5], t[2], t[6]) end, }, }

return statistics