public double GetBestCost(ResourceTypes.ResourceType resourceType, out TradeRegion bestRegion, out TradeRegion worstRegion)
        {
            double bestCost  = 0;
            double worstCost = double.MaxValue;

            bestRegion  = null;
            worstRegion = null;
            double regionalTransportCost = Ownregion.GetTransportCost();

            foreach (TradeRegion tradeRegion in TradeRegions)
            {
                double externalTransportCost = tradeRegion.GetTransportCost();
                double totalTransportCost    = (regionalTransportCost + externalTransportCost) / 2;
                double resourceCost          = tradeRegion.GetResorceCost(resourceType);
                double salesCost             = resourceCost - totalTransportCost;
                if (salesCost > bestCost)
                {
                    bestCost   = salesCost;
                    bestRegion = tradeRegion;
                }
                if (tradeRegion.GetTransportAmount(resourceType) > 0 && salesCost < worstCost)
                {
                    worstCost   = salesCost;
                    worstRegion = tradeRegion;
                }
            }
            return(bestCost);
        }
        public double GetBestCost(ResourceType resourceType, out ExternalMarket bestRegion)
        {
            double bestCost = 0;

            bestRegion = null;
            double regionalTransportCost = Ownregion.GetTransportCost() / 2;

            foreach (Region region in BorderRegions)
            {
                double externalTransportCost = region.GetTransportCost() / 2;
                double totalTransportCost    = regionalTransportCost + externalTransportCost;
                double resourceCost          = region.GetResorceCost(resourceType);
                double salesCost             = resourceCost - totalTransportCost;
                if (salesCost > bestCost)
                {
                    bestCost   = salesCost;
                    bestRegion = region.GetExternalMarket();
                }
            }

            return(bestCost);
        }