I just assumed an "if" required an "else". Thanks for that clarification!
So this is probably the best way to go about this:
Set decimal [Hull_health] value to the converted value of {DEC:Ship health}
Set decimal [Powerplant_health] value to the converted value of {DEC:Ship power plant health}
Set decimal [Thrusters_health] value to the converted value of {DEC:Ship thrusters health}
Set decimal [Frameshift_health] value to the converted value of {DEC:Ship frame shift drive health}
Set decimal [Life_support_health] value to the converted value of {DEC:Ship life support health}
Set decimal [Distributor_health] value to the converted value of {DEC:Ship power distributor health}
Set decimal [Sensors_health] value to the converted value of {DEC:Ship sensors health}
Say, 'Running preflight checks, [captain' or 'sir' or ']'
Set small int (condition) [parts_count] value to 0
Pause 2.2 seconds
Begin Decimal Compare : [Hull_health] Is Less Than 100.00000
Say, 'The hull,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Powerplant_health] Is Less Than 100.00000
Say, 'The powerplant,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Thrusters_health] Is Less Than 100.00000
Say, 'the thrusters,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Frameshift_health] Is Less Than 100.00000
Say, 'the frameshift drive,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Life_support_health] Is Less Than 100.00000
Say, 'life support,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Distributor_health] Is Less Than 100.00000
Say, 'the power distributor,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Begin Decimal Compare : [Sensors_health] Is Less Than 100.00000
Say, 'the sensors,'
Set small int (condition) [parts_count] value as incremented by 1
End Condition
Marker: final_component_check
Begin Small Integer Compare : [parts_count] Equals 1
Say, 'is [needing repair' or 'less than optimal' or 'not at 100%], [captain' or 'sir' or ']. That is only one component.'
Else If Small Integer Compare : [parts_count] Is Greater Than 1
Say, 'are [less than optimal' or 'needing repair' or 'not 100%], [captain' or 'sir' or ']. That is {DEC:parts_count} components.'
Else If Small Integer Compare : [parts_count] Equals 0
Say, 'All ship components are in optimal condition.'
End Condition
Thanks so much for the help!