Consolidated opponent/separate ON OFF handling

ON and OFF can’t be run in independent processes, that’s muddying data
with process
Consolidate opponent/separate ON OFF handling