opponent logic completed