async Task INestProcesses.ProcessNestAsync(DeckRegularDict <RookCardInformation> list) { if (list.Count != 5) { throw new BasicBlankException("The nest must contain exactly 5 cards"); } if (_gameContainer.SingleInfo !.CanSendMessage(_gameContainer.BasicData !)) { await _gameContainer.Network !.SendAllAsync("nestlist", list); } _gameContainer.SaveRoot !.NestList.ReplaceRange(list); var newCol = _model !.Deck1 !.DrawSeveralCards(3); _gameContainer.SaveRoot.NestList.AddRange(newCol); _gameContainer.SingleInfo !.MainHandList.RemoveSelectedItems(list); //hopefully this works. _gameContainer.SingleInfo.MainHandList.UnhighlightObjects(); _gameContainer.StartingStatus !.Invoke(); //hopefully this simple. _gameContainer.SaveRoot.GameStatus = EnumStatusList.Normal; _model.PlayerHand1 !.AutoSelect = HandObservable <RookCardInformation> .EnumAutoType.SelectOneOnly; if (_gameContainer.PlayerList.Count() == 3) { if (_gameContainer.SaveRoot.WonSoFar == 1) { _gameContainer.SingleInfo = _gameContainer.PlayerList ![3];