예제 #1
0
        //returns the current price per share for an airline
        public static double GetPricePerAirlineShare(Airline airline)
        {
            Random rnd = new Random();

            double price = 0;
            Airline.AirlineValue value = airline.getAirlineValue();

            switch (value)
            {
                case Airline.AirlineValue.Low:
                    price = 15 + (rnd.NextDouble() * 10);
                    break;
                case Airline.AirlineValue.Very_low:
                    price = 5 + (rnd.NextDouble() * 10);
                    break;
                case Airline.AirlineValue.Normal:
                    price = 25 + (rnd.NextDouble() * 10);
                    break;
                case Airline.AirlineValue.High:
                    price = 40 + (rnd.NextDouble() * 10);
                    break;
                case Airline.AirlineValue.Very_high:
                    price = 55 + (rnd.NextDouble() * 10);
                    break;
            }

            return GeneralHelpers.GetInflationPrice(price);
        }
예제 #2
0
        //returns if an airline can create a hub at an airport
        public static Boolean CanCreateHub(Airline airline, Airport airport, HubType type)
        {
            Boolean airlineHub = airport.getHubs().Exists(h => h.Airline == airline);

            int airlineValue = (int)airline.getAirlineValue() + 1;

            int totalAirlineHubs = airline.getHubs().Count;// 'Airports.GetAllActiveAirports().Sum(a => a.Hubs.Count(h => h.Airline == airline));
            double airlineGatesPercent = Convert.ToDouble(airport.Terminals.getNumberOfGates(airline)) / Convert.ToDouble(airport.Terminals.getNumberOfGates()) * 100;

            switch (type.Type)
            {
                case HubType.TypeOfHub.Focus_city:
                    return !airlineHub && airline.Money > AirportHelpers.GetHubPrice(airport, type);
                case HubType.TypeOfHub.Regional_hub:
                    return !airlineHub && airline.Money > AirportHelpers.GetHubPrice(airport, type) && (airport.Profile.Size == GeneralHelpers.Size.Large || airport.Profile.Size == GeneralHelpers.Size.Medium) && airport.getHubs().Count < 7;
                case HubType.TypeOfHub.Fortress_hub:
                    return !airlineHub && airline.Money > AirportHelpers.GetHubPrice(airport, type) && (airport.Profile.Size > GeneralHelpers.Size.Medium) && airlineGatesPercent > 70 && (totalAirlineHubs < airlineValue);
                case HubType.TypeOfHub.Hub:
                    return !airlineHub && airline.Money > AirportHelpers.GetHubPrice(airport, type) && (!airlineHub) && (airlineGatesPercent > 20) && (totalAirlineHubs < airlineValue) && (airport.getHubs(HubType.TypeOfHub.Hub).Count < (int)airport.Profile.Size);
            }

            return false;


        }