//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 void btnBuyAsSubsidiary_Click(object sender, RoutedEventArgs e) { AirlinesMVVM airline = SelectedAirline; double buyingPrice = airline.Airline.GetValue() * 100000 * 1.10; WPFMessageBoxResult result = WPFMessageBox.Show( Translator.GetInstance().GetString("MessageBox", "2113"), string.Format( Translator.GetInstance().GetString("MessageBox", "2113", "message"), airline.Airline.Profile.Name, buyingPrice), WPFMessageBoxButtons.YesNo); if (result == WPFMessageBoxResult.Yes) { List<AirlineLogo> oldLogos = airline.Airline.Profile.Logos; string oldColor = airline.Airline.Profile.Color; //creates independent airlines for each subsidiary while (airline.Airline.Subsidiaries.Count > 0) { SubsidiaryAirline subAirline = airline.Airline.Subsidiaries[0]; subAirline.Airline = null; airline.Airline.RemoveSubsidiaryAirline(subAirline); } if (airline.Airline.License > GameObject.GetInstance().HumanAirline.License) { GameObject.GetInstance().HumanAirline.License = airline.Airline.License; } var sAirline = new SubsidiaryAirline( GameObject.GetInstance().HumanAirline, airline.Airline.Profile, airline.Airline.Mentality, airline.Airline.MarketFocus, airline.Airline.License, airline.Airline.AirlineRouteFocus); AirlineHelpers.SwitchAirline(airline.Airline, sAirline); GameObject.GetInstance().HumanAirline.AddSubsidiaryAirline(sAirline); AirlineHelpers.AddAirlineInvoice( GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.AirlineExpenses, -buyingPrice); Airlines.RemoveAirline(airline.Airline); Airlines.AddAirline(sAirline); sAirline.Profile.Logos = oldLogos; sAirline.Profile.Color = oldColor; foreach (AirlinePolicy policy in airline.Airline.Policies) { sAirline.AddAirlinePolicy(policy); } sAirline.Money = airline.Airline.Money; sAirline.StartMoney = airline.Airline.Money; sAirline.Fees = new AirlineFees(); PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline)); } }