private void btnConvertToCargo_Click(object sender, RoutedEventArgs e) { double convertPrice = GeneralHelpers.GetInflationPrice(1000 * ((AirlinerPassengerType)this.Airliner.Airliner.Type).MaxSeatingCapacity); if (this.Airliner.Airliner.getPrice() > GameObject.GetInstance().HumanAirline.Money) { WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2109"), Translator.GetInstance().GetString("MessageBox", "2109", "message"), WPFMessageBoxButtons.Ok); } else { WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2123"), string.Format(Translator.GetInstance().GetString("MessageBox", "2123", "message"), this.Airliner.Name, new ValueCurrencyConverter().Convert(convertPrice)), WPFMessageBoxButtons.YesNo); if (result == WPFMessageBoxResult.Yes) { AirlinerPassengerType currentType = this.Airliner.Airliner.Type as AirlinerPassengerType; string airlinerName = string.Format("{0} Freighter", currentType.Name); double cargoSize = AirlinerHelpers.ConvertPassengersToCargoSize(currentType); AirlinerType newCargoType = new AirlinerCargoType(currentType.Manufacturer, airlinerName, currentType.AirlinerFamily, currentType.CockpitCrew, cargoSize, currentType.CruisingSpeed, currentType.Range, currentType.Wingspan, currentType.Length, currentType.FuelConsumption, currentType.Price, currentType.MinRunwaylength, currentType.FuelCapacity, currentType.Body, currentType.RangeType, currentType.Engine, currentType.Produced, currentType.ProductionRate, false); newCargoType.BaseType = currentType; AirlinerTypes.AddType(newCargoType); this.Airliner.Airliner.Type = newCargoType; AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Airline_Expenses, -convertPrice); PageNavigator.NavigateTo(new PageFleetAirliner(this.Airliner)); } } }
private void btnLoadConfiguration_Click(object sender, RoutedEventArgs e) { AirlinerPassengerType airlinerType = ((AirlinerPassengerType)this.Airliner.Airliner.Type); ComboBox cbConfigurations = new ComboBox(); cbConfigurations.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle"); cbConfigurations.SelectedValuePath = "Name"; cbConfigurations.DisplayMemberPath = "Name"; cbConfigurations.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; cbConfigurations.Width = 200; foreach (AirlinerConfiguration confItem in Configurations.GetConfigurations(Configuration.ConfigurationType.Airliner).FindAll(c => ((AirlinerConfiguration)c).getNumberOfClasses() <= airlinerType.MaxAirlinerClasses && ((AirlinerConfiguration)c).MinimumSeats <= airlinerType.MaxSeatingCapacity)) { cbConfigurations.Items.Add(confItem); } cbConfigurations.SelectedIndex = 0; if (PopUpSingleElement.ShowPopUp("Select configuration", cbConfigurations) == PopUpSingleElement.ButtonSelected.OK && cbConfigurations.SelectedItem != null) { AirlinerConfiguration configuration = (AirlinerConfiguration)cbConfigurations.SelectedItem; this.Airliner.Airliner.clearAirlinerClasses(); foreach (AirlinerClassConfiguration aClass in configuration.Classes) { AirlinerClass airlinerClass = new AirlinerClass(aClass.Type, aClass.SeatingCapacity); airlinerClass.RegularSeatingCapacity = aClass.RegularSeatingCapacity; foreach (AirlinerFacility facility in aClass.getFacilities()) { airlinerClass.setFacility(this.Airliner.Airliner.Airline, facility); } this.Airliner.Airliner.addAirlinerClass(airlinerClass); } int seatingDiff = airlinerType.MaxSeatingCapacity - configuration.MinimumSeats; this.Airliner.Airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).RegularSeatingCapacity += seatingDiff; AirlinerFacility seatingFacility = this.Airliner.Airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).getFacility(AirlinerFacility.FacilityType.Seat); int extraSeats = (int)(seatingDiff / seatingFacility.SeatUses); this.Airliner.Airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).SeatingCapacity += extraSeats; showFacilities(); } }
//returns the price for converting a passenger airliner to a cargo airliner public static double GetCargoConvertingPrice(AirlinerPassengerType type) { double basePrice = 650000; if (type.Body == AirlinerType.BodyType.Single_Aisle) { basePrice = basePrice * 1.2; } if (type.Body == AirlinerType.BodyType.Narrow_Body) { basePrice = basePrice * 2.4; } if (type.Body == AirlinerType.BodyType.Wide_Body) { basePrice = basePrice * 3.6; } double paxRate = type.MaxSeatingCapacity * 800; return(GeneralHelpers.GetInflationPrice(basePrice + paxRate)); }
//return the days for converting a passenger airliner to a cargo airliner public static int GetCargoConvertingDays(AirlinerPassengerType type) { return((int)(Convert.ToDouble(type.MaxSeatingCapacity) / 1.15)); }
//returns the cargo size for a passenger airliner if needed to converted public static double GetPassengerCargoSize(AirlinerPassengerType type) { return(Convert.ToDouble(type.MaxSeatingCapacity) * 1.25); }
//converts the passenger capacity for an airliner type to cargo capacity public static double ConvertPassengersToCargoSize(AirlinerPassengerType type) { return(type.MaxSeatingCapacity * 2); }