Option 5: Covers the edge case where an alliance scores no gears and also forgets about the reserve gear.
Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 12
if match.rotor3Engaged: return 6
if match.rotor2Auto: return 3
if match.rotor2Engaged: return 2
if match.rotor1Auto: return 1
if match.rotor1Engaged: return 0
else: return -1
function matchAutoGears(match):
if match.rotor2Auto: return 3
if match.rotor1Auto: return 1
else: return 0
function matchTeleopGears(match):
return matchTotalGears(match) - matchAutoGears(match)
Basically this would provide extra punishment for alliances with extremely bad pilots.