DotNet.Ships.Class.BuildMetrics - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki

EliteDangerousAlmanac / Ships / BuildMetrics

Class: BuildMetrics

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:195

Every figure a fitted build can be asked for.

What the fitted systems do with the power, the heat and the shots.

Remarks

A view holds the build rather than copying it, so a later edit is visible to every call that follows. What the build already carries — its mounts, its aggregate figures and its editors — stays on the build itself.

Every member is a method, because each one computes from the build state rather than reading a fact the fit already holds.

Properties

Loadout

Loadout: ShipLoadout

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:212

The build this view reads.

Methods

ArmourMetrics()

ArmourMetrics(): ArmourMetrics

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:175

The build's armour.

Returns

ArmourMetrics

The hull points, what the bulkhead and each reinforcement contribute, and the effective resistances.

BuildCost()

BuildCost(): BuildCost

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:426

Prices the whole build from the catalogues.

Returns

BuildCost

The shop credits, the Merc Coin and the engineering materials the modifications consume. The module price, the total and the rebuy are lower bounds while anything is unpriced. A built-in hull fitting is free rather than unpriced.

Remarks

No modification is charged twice. A Mercenary article arrives at the grade it was sold at, so only the climb above that grade bills materials and further Merc Coin, and an experimental effect the article came with is free while one added on top is not.

BuildMass()

BuildMass(load?): BuildMass

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:400

Weighs the hull, the fitted modules and the load on top of them.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

BuildMass

The breakdown, every figure in tonnes.

Remarks

Every module's mass is post-engineering, so a lightweight roll is already counted. The reserve tank is not counted: the main tank is the fuel the drive and the flight model see, and it is what the jump and the mobility calculations weigh.

Exceptions

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more.

CellBanks()

CellBanks(): CellBankSummary

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:164

Every fitted shield cell bank and the pool a rearmed set of them restores.

Returns

CellBankSummary

The banks in the hull's mount order, and the totals. Every fitted bank is listed, and each says whether it is switched on and whether its power band is fed with the hardpoints deployed. The totals count the powered banks alone, so a build whose plant is off or outdrawn reports every bank unpowered and no pool at all.

DistributorMetricsResult()

DistributorMetricsResult(pips?): CalculationResult<DistributorMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:255

The build's power distributor at one allocation.

Parameters

pips

DistributorPips? = null

The pips fed to each of the three capacitors. Omit it for a full allocation to each.

Returns

CalculationResult<DistributorMetrics>

The distributor figures, or the fitted distributor's state: missing when none is fitted, disabled when it is switched off, shed when the retracted budget does not feed it, and unresolved when its record states less than all six capacitor figures.

Exceptions

ArgumentOutOfRangeException

An allocation is outside zero through four.

FrameShiftDrive()

FrameShiftDrive(): FrameShiftDriveParams

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:220

The fitted drive's constants, post-engineering.

Returns

FrameShiftDriveParams

The constants, with any fitted jump booster folded into the jump bonus.

Exceptions

InvalidOperationException

The build has no frame shift drive, or the fitted drive states none of the constants a jump needs.

FrameShiftDriveMassFactor()

FrameShiftDriveMassFactor(load?): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:251

The drive's dimensionless mass factor at one load.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

double

The optimised mass over the loaded mass: one at the drive's optimised mass, below one above it and above one below it.

Remarks

This is the mass term the jump equation uses rather than the three-point curve the thrusters and the shield generators use. The main-tank fuel joins the loaded mass, and a jump booster's additive range does not reach the factor.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more.

FuelPerJump()

FuelPerJump(distance, load?): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:294

The fuel one jump of a stated distance costs.

Parameters

distance

double

The jump distance, in light-years.

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

double

The fuel used, in tonnes, capped at what the drive burns in one jump.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more.

HeatMetricsResult()

HeatMetricsResult(): CalculationResult<HeatMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:47

The build's heat.

Returns

CalculationResult<HeatMetrics>

The heat figures, or the state of the fitted power plant that stopped them: missing when none is fitted, disabled when it is switched off, and unresolved when its record states no heat efficiency.

JumpRangeAt()

JumpRangeAt(load?): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:274

The range of one jump at a chosen load.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

double

The jump's range, in light-years.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more.

JumpRangeSummary()

JumpRangeSummary(): JumpRangeSummary

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:375

Every jump figure at once: the best, the unladen, the laden, and each total.

Returns

JumpRangeSummary

The summary. Each single jump and each total's range is in light-years.

Remarks

For a load of a caller's own, ask for one jump or for every jump at the fuel and the cargo actually carried.

Exceptions

InvalidOperationException

The build has no usable frame shift drive, so no standard load can be weighed.

LadenJumpRange()

LadenJumpRange(): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:284

The range of one jump on a full tank with a full hold.

Returns

double

The jump's range, in light-years.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

MaxJumpRange()

MaxJumpRange(): double

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:261

The best single jump: no cargo, and one jump's fuel aboard.

Returns

double

The range in light-years. A capture stating an empty main tank jumps nowhere.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

MobilityCapacitorMetricsResult()

MobilityCapacitorMetricsResult(load?, enginesPips?): CalculationResult<MobilityCapacitorMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:86

The build's engines capacitor at one load and one allocation.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

enginesPips

double = 4

The pips fed to the engines capacitor, from zero through four. Four reproduces the mobility figures exactly.

Returns

CalculationResult<MobilityCapacitorMetrics>

The capacitor figures, or the same states the mobility figures report, the two reading one build.

Exceptions

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more, or the allocation is outside zero through four.

MobilityMetricsResult()

MobilityMetricsResult(load?): CalculationResult<MobilityMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:64

The build's speed and handling at one load.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

CalculationResult<MobilityMetrics>

The mobility figures, or the input or fitted-module state that stopped them.

Exceptions

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more.

Of()

static Of(build): BuildMetrics

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:208

Attaches a metrics view to a build.

Parameters

build

ShipLoadout

The build to read.

Returns

BuildMetrics

The view.

Exceptions

ArgumentNullException

build is null.

PowerBudget()

PowerBudget(): PowerBudget

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:25

The build's power budget.

Returns

PowerBudget

What the plant makes, what the modules draw with the hardpoints retracted and deployed, and which power bands stay lit. The consumers are the modules that draw something, so a passive or a zero-draw fitting is absent.

Remarks

Draws are post-engineering, a module switched off in the capture is skipped, and a weapon — with the utility fittings that are not always powered — counts towards the deployed total alone.

Exceptions

ArgumentOutOfRangeException

A power capacity or a module draw is negative or not a finite figure.

ShieldCapacitorMetricsResult()

ShieldCapacitorMetricsResult(systemsPips?): CalculationResult<ShieldCapacitorMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:123

The build's systems capacitor and the resistance it buys.

Parameters

systemsPips

double = 4

The pips fed to the systems capacitor, from zero through four. Four is a full capacitor, which is the condition the game's own panel quotes. Zero is the bare shield, whose effective figures then equal the shield figures.

Returns

CalculationResult<ShieldCapacitorMetrics>

The capacitor figures, or the shield states plus an unresolved distributor whose record states no systems capacity or recharge.

Exceptions

ArgumentOutOfRangeException

The allocation is outside zero through four.

ShieldMetricsResult()

ShieldMetricsResult(): CalculationResult<ShieldMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:101

The build's bare shields, which take no pips.

Returns

CalculationResult<ShieldMetrics>

The shield figures, or the input or fitted-module state that stopped them.

ShieldRecoveryResult()

ShieldRecoveryResult(systemsPips?): CalculationResult<ShieldRecoveryMetrics>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:146

The time the build's collapsed shield takes to come back.

Parameters

systemsPips

double = 4

The pips fed to the systems capacitor, from zero through four, which feed the recovery. Four is the condition the game reports a recovery at.

Returns

CalculationResult<ShieldRecoveryMetrics>

The recovery figures, or the input or fitted-module state that stopped them.

Exceptions

ArgumentOutOfRangeException

The allocation is outside zero through four.

StandardLoadResult()

StandardLoadResult(load): CalculationResult<StandardLoadFigures>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:323

Resolves one of the standard loads the jump and the mobility views quote.

Parameters

load

StandardLoad

Which standard load to weigh.

Returns

CalculationResult<StandardLoadFigures>

The fuel and the cargo carried, and what the ship weighs carrying them, all in tonnes. Only the maximum load can come back incomplete: it reads the whole fitted drive, the jump booster included, so a complete one can be passed straight to a jump calculation.

Thrusters()

Thrusters(): ThrusterParams?

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:233

The fitted thrusters' post-engineering mass curve.

Returns

ThrusterParams?

The curve, or null where no thrusters are fitted or the fitted record carries no complete curve.

Remarks

This is the fitted article's own curve, so a switched-off or a shed thruster still has one. What the build can do with it is the mobility metric's judgement.

TotalRange()

TotalRange(load?): TotalRangeDetails

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.cs:309

The summed range and the jumps a chosen load produces.

Parameters

load

BuildLoad? = null

The fuel and the cargo. Omit it for a full tank and an empty hold.

Returns

TotalRangeDetails

The summed range in light-years, and the jumps made before the tank empties.

Exceptions

InvalidOperationException

The build has no usable frame shift drive.

ArgumentOutOfRangeException

The fuel or the cargo is not a finite figure of zero or more, or the fuel would take more jumps than the calculation counts.

WeaponMetrics()

WeaponMetrics(): BuildWeaponMetrics

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:184

The build's firepower.

Returns

BuildWeaponMetrics

Every fitted weapon with its own figures, and the totals across the enabled ones. Every figure is post-engineering. A weapon switched off in the capture is still listed, with its own figures, and joins no total.

WeaponsCapacitorMetrics()

WeaponsCapacitorMetrics(weaponsPips?): WeaponsCapacitorMetrics

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/BuildMetrics.Systems.cs:234

The weapons capacitor while every powered weapon fires.

Parameters

weaponsPips

double = 4

The pips fed to the weapons capacitor, from zero through four.

Returns

WeaponsCapacitorMetrics

The recharge, the sustained draw, the net drain and the seconds from full to empty. The deployed power budget reaches the distributor and the weapons, so a module the plant sheds contributes nothing. With no powered distributor the capacity and the recharge are zero, and a load that draws no more than the recharge never empties.

Exceptions

ArgumentOutOfRangeException

The allocation is outside zero through four.

⚠️ **GitHub.com Fallback** ⚠️