private void OnNewBoardStateAvailable(BoardState boardState) { if (boardState?.CurrentMover.PlayerType == PlayerType.BottomPlayer) { var boardAnalysis = gameFactory.GetGameAnalysis(boardState); allPossibleWalls = boardAnalysis.GetPossibleWalls(); boardAnalysis.GetPossibleMoves() .Select(move => new PlayerState(null, move, -1)) .Do(PossibleMoves.Add); } else { DisablePlacement(); } }