public InBattle Defeated(PlayerNumber defeated) { if (!LastRound.HasValue) { throw new InvalidOperationException(); } return(new InBattle(this, Self, Rounds.Take(Rounds.Count - 1).Append(LastRound.Value.Defeated(defeated)))); }