public bool ShouldBuildResearchStation(IPandemicState state, City currentLocation, PlayerRole playerRole, List <PandemicPlayerCard> playerHand)
        {
            if (!CouldBuildResearchStation(state, currentLocation, playerRole, playerHand))
            {
                return(false);
            }

            var nearestCityWithResearchStation = _routeHelper.GetNearestCitywithResearchStation(state, currentLocation);

            if (nearestCityWithResearchStation == null)
            {
                return(true);
            }

            var minimumDistanceBetweenResearchStations = 2; // could be dynamic

            var routeToNearestResearchStation = _routeHelper.GetShortestPath(state, currentLocation, nearestCityWithResearchStation.Value);

            if (routeToNearestResearchStation.Count > minimumDistanceBetweenResearchStations)
            {
                return(true);
            }

            return(false);
        }
        private bool MoveTowardsNearestResearchStationIfHaveCure(IPandemicTurn turn, bool atResearchStation,
                                                                 PandemicPlayerState currentPlayerState, List <Disease> curableDiseases)
        {
            if (!atResearchStation)
            {
                var nearestCityWithResearchStation =
                    _routeHelper.GetNearestCitywithResearchStation(turn.State, currentPlayerState.Location);
                var routeToNearestResearchStation = nearestCityWithResearchStation == null
                    ? new List <City>()
                    : _routeHelper.GetShortestPath(turn.State, currentPlayerState.Location,
                                                   nearestCityWithResearchStation.Value);
                if (nearestCityWithResearchStation != null &&
                    curableDiseases.Any() &&
                    routeToNearestResearchStation != null &&
                    routeToNearestResearchStation.Count > 1)
                {
                    BroadCastThought($"I should move torwards the research station at {nearestCityWithResearchStation} so I can cure a disease");
                    turn.DriveOrFerry(routeToNearestResearchStation[1]);
                    return(true);
                }
            }

            return(false);
        }