Optimisation to `Battle.construct`