public AddAirportFacility ( |
||
airline | ||
facility | AirportFacility | |
finishedDate | System.DateTime | |
return | void |
//adds a subsidiary airline to an airline public static void AddSubsidiaryAirline(Airline airline, SubsidiaryAirline sAirline, double money, Airport airportHomeBase) { Terminal.TerminalType terminaltype = sAirline.AirlineRouteFocus == Route.RouteType.Cargo ? Terminal.TerminalType.Cargo : Terminal.TerminalType.Passenger; AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.AirlineExpenses, -money); sAirline.Money = money; sAirline.StartMoney = money; sAirline.Fees = new AirlineFees(); airline.AddSubsidiaryAirline(sAirline); if (!AirportHelpers.HasFreeGates(airportHomeBase, sAirline, terminaltype) && airportHomeBase.Terminals.GetFreeGates(terminaltype) > 1) { AirportHelpers.RentGates(airportHomeBase, sAirline, AirportContract.ContractType.Full, terminaltype, 2); //sets all the facilities at an airport to none for all airlines foreach (Airport airport in Airports.GetAllAirports()) { foreach (AirportFacility.FacilityType type in Enum.GetValues(typeof (AirportFacility.FacilityType))) { AirportFacility noneFacility = AirportFacilities.GetFacilities(type).Find((facility => facility.TypeLevel == 0)); airport.AddAirportFacility(sAirline, noneFacility, GameObject.GetInstance().GameTime); } } AirportFacility serviceFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.Service).Find(f => f.TypeLevel == 1); AirportFacility checkinFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.CheckIn).Find(f => f.TypeLevel == 1); airportHomeBase.AddAirportFacility(sAirline, serviceFacility, GameObject.GetInstance().GameTime); airportHomeBase.AddAirportFacility(sAirline, checkinFacility, GameObject.GetInstance().GameTime); } foreach (AirlinePolicy policy in airline.Policies) sAirline.AddAirlinePolicy(policy); Airlines.AddAirline(sAirline); }
private static void SetupScenarioAirport(Airline airline, Airport airport, int quantity = 2) { for (int i = 0; i < quantity; i++) { if (!AirportHelpers.HasFreeGates(airport, airline)) { AirportHelpers.RentGates(airport, airline, AirportContract.ContractType.Full); } } AirportFacility checkinFacility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.CheckIn).Find(f => f.TypeLevel == 1); AirportFacility facility = AirportFacilities.GetFacilities(AirportFacility.FacilityType.Service) .Find((f => f.TypeLevel == 1)); airport.AddAirportFacility(airline, facility, GameObject.GetInstance().GameTime); airport.AddAirportFacility(airline, checkinFacility, GameObject.GetInstance().GameTime); }
//reallocate all gates and facilities from one airport to another - gates, facilities and routes public static void ReallocateAirport(Airport oldAirport, Airport newAirport, Airline airline) { //contract List<AirportContract> oldContracts = oldAirport.GetAirlineContracts(airline); foreach (AirportContract oldContract in oldContracts) { oldAirport.RemoveAirlineContract(oldContract); oldContract.Airport = newAirport; AirportHelpers.AddAirlineContract(oldContract); for (int i = 0; i < oldContract.NumberOfGates; i++) { Gate newGate = newAirport.Terminals.GetGates().First(g => g.Airline == null); newGate.Airline = airline; Gate oldGate = oldAirport.Terminals.GetGates().First(g => g.Airline == airline); oldGate.Airline = null; } } //routes IEnumerable<Route> obsoleteRoutes = (from r in airline.Routes where r.Destination1 == oldAirport || r.Destination2 == oldAirport select r); foreach (Route route in obsoleteRoutes) { if (route.Destination1 == oldAirport) route.Destination1 = newAirport; if (route.Destination2 == oldAirport) route.Destination2 = newAirport; List<RouteTimeTableEntry> entries = route.TimeTable.Entries.FindAll(e => e.Destination.Airport == oldAirport); foreach (RouteTimeTableEntry entry in entries) entry.Destination.Airport = newAirport; foreach (FleetAirliner airliner in route.GetAirliners()) { if (airliner.Homebase == oldAirport) airliner.Homebase = newAirport; } } //facilities foreach (AirportFacility facility in oldAirport.GetCurrentAirportFacilities(airline)) { newAirport.AddAirportFacility(airline, facility, GameObject.GetInstance().GameTime); } oldAirport.ClearFacilities(airline); foreach (AirportFacility.FacilityType type in Enum.GetValues(typeof (AirportFacility.FacilityType))) { AirportFacility noneFacility = AirportFacilities.GetFacilities(type).Find((facility => facility.TypeLevel == 0)); oldAirport.AddAirportFacility(airline, noneFacility, GameObject.GetInstance().GameTime); } }