- if (this.subTurn == 0) return true; //always one reserve for an undefined
- if (!super.atLeastOneMove()) return atLeastOneReserveMove();
- return true;
+ if (this.subTurn == 0) return atLeastOneReserveMove();
+ const canMoveSomething = super.atLeastOneMove();
+ if (this.subTurn == 2) return canMoveSomething;
+ return (canMoveSomething || atLeastOneReserveMove());