//creates the stop over route based on the main route public static StopoverRoute CreateStopoverRoute(Airport dest1, Airport stopover, Airport dest2, Route mainroute, bool oneLegged, Route.RouteType type) { var stopoverRoute = new StopoverRoute(stopover); Guid id = Guid.NewGuid(); if (!oneLegged) { if (mainroute.Type == Route.RouteType.Passenger || mainroute.Type == Route.RouteType.Mixed) { var routeLegTwo = new PassengerRoute(id.ToString(), dest1, stopover, GameObject.GetInstance().GameTime, 0); foreach (RouteAirlinerClass aClass in ((PassengerRoute) mainroute).Classes) { //routeLegTwo.getRouteAirlinerClass(aClass.Type).FarePrice = aClass.FarePrice; routeLegTwo.GetRouteAirlinerClass(aClass.Type).FarePrice = PassengerHelpers.GetPassengerPrice(dest1, stopover)*GeneralHelpers.ClassToPriceFactor(aClass.Type); foreach (RouteFacility facility in aClass.GetFacilities()) routeLegTwo.GetRouteAirlinerClass(aClass.Type).AddFacility(facility); routeLegTwo.GetRouteAirlinerClass(aClass.Type).Seating = aClass.Seating; } stopoverRoute.AddLeg(routeLegTwo); } if (mainroute.Type == Route.RouteType.Cargo || mainroute.Type == Route.RouteType.Mixed) { var routeLegTwo = new CargoRoute(id.ToString(), dest1, stopover, GameObject.GetInstance().GameTime, ((CargoRoute) mainroute).PricePerUnit); stopoverRoute.AddLeg(routeLegTwo); } } if (mainroute.Type == Route.RouteType.Mixed || mainroute.Type == Route.RouteType.Passenger) { id = Guid.NewGuid(); var routeLegOne = new PassengerRoute(id.ToString(), stopover, dest2, GameObject.GetInstance().GameTime, 0); foreach (RouteAirlinerClass aClass in ((PassengerRoute) mainroute).Classes) { //routeLegOne.getRouteAirlinerClass(aClass.Type).FarePrice = aClass.FarePrice; routeLegOne.GetRouteAirlinerClass(aClass.Type).FarePrice = PassengerHelpers.GetPassengerPrice(stopover, dest2)*GeneralHelpers.ClassToPriceFactor(aClass.Type); foreach (RouteFacility facility in aClass.GetFacilities()) routeLegOne.GetRouteAirlinerClass(aClass.Type).AddFacility(facility); routeLegOne.GetRouteAirlinerClass(aClass.Type).Seating = aClass.Seating; } stopoverRoute.AddLeg(routeLegOne); } if (mainroute.Type == Route.RouteType.Cargo || mainroute.Type == Route.RouteType.Mixed) { var routeLegOne = new CargoRoute(id.ToString(), stopover, dest2, GameObject.GetInstance().GameTime, ((CargoRoute) mainroute).PricePerUnit); stopoverRoute.AddLeg(routeLegOne); } return stopoverRoute; }
private static void SetupScenarioRoute(ScenarioAirlineRoute saroute, Airline airline) { SetupScenarioAirport(airline, saroute.Destination1, saroute.Quantity); SetupScenarioAirport(airline, saroute.Destination2, saroute.Quantity); double price = PassengerHelpers.GetPassengerPrice(saroute.Destination1, saroute.Destination2); for (int i = 0; i < saroute.Quantity; i++) { Guid id = Guid.NewGuid(); var route = new PassengerRoute( id.ToString(), saroute.Destination1, saroute.Destination2, GameObject.GetInstance().GameTime, price); RouteClassesConfiguration configuration = AIHelpers.GetRouteConfiguration(route); foreach (RouteClassConfiguration classConfiguration in configuration.GetClasses()) { route.GetRouteAirlinerClass(classConfiguration.Type).FarePrice = price *GeneralHelpers.ClassToPriceFactor (classConfiguration.Type); foreach (RouteFacility rfacility in classConfiguration.GetFacilities()) { route.GetRouteAirlinerClass(classConfiguration.Type).AddFacility(rfacility); } } airline.AddRoute(route); FleetAirliner fAirliner = AirlineHelpers.CreateAirliner(airline, saroute.AirlinerType); airline.AddAirliner(fAirliner); fAirliner.AddRoute(route); AIHelpers.CreateRouteTimeTable(route, fAirliner); fAirliner.Status = FleetAirliner.AirlinerStatus.ToRouteStart; AirlineHelpers.HireAirlinerPilots(fAirliner); route.LastUpdated = GameObject.GetInstance().GameTime; } }