/// <summary> /// Cancels the prvious rally. /// </summary> public IEnumerable <Receive> CancelRally() { if (Points.Count < 1) { throw new InvalidOperationException("Cannot rollback from empty state!"); } var point = Points.Last(); Points.Remove(point); PointCounter.Rollback(); (PointA, PointB) = (PointCounter.PointA, PointCounter.PointB); OnRallyCanceled(point); return(point.Receives); }