//creates the airliner classes for an airliner public static void CreateAirlinerClasses(Airliner airliner) { if (airliner.Type is AirlinerPassengerType) { Configuration airlinerTypeConfiguration = Configurations.GetConfigurations(Configuration.ConfigurationType.AirlinerType).Find(c => ((AirlinerTypeConfiguration)c).Airliner == airliner.Type && ((AirlinerTypeConfiguration)c).Period.From <= airliner.BuiltDate && ((AirlinerTypeConfiguration)c).Period.To > airliner.BuiltDate); if (airlinerTypeConfiguration == null) { airliner.clearAirlinerClasses(); AirlinerConfiguration configuration = null; int classes = rnd.Next(0, ((AirlinerPassengerType)airliner.Type).MaxAirlinerClasses) + 1; if (GameObject.GetInstance().GameTime.Year >= (int)AirlinerClass.ClassType.Business_Class) { if (classes == 1) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("200"); } if (classes == 2) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("202"); } if (classes == 3) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("203"); } } else { if (classes == 1) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("200"); } if (classes == 2) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("201"); } if (classes == 3) { configuration = (AirlinerConfiguration)Configurations.GetStandardConfiguration("201"); } } 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(airliner.Airline, facility); } airlinerClass.SeatingCapacity = Convert.ToInt16(Convert.ToDouble(airlinerClass.RegularSeatingCapacity) / airlinerClass.getFacility(AirlinerFacility.FacilityType.Seat).SeatUses); airliner.addAirlinerClass(airlinerClass); } int seatingDiff = ((AirlinerPassengerType)airliner.Type).MaxSeatingCapacity - configuration.MinimumSeats; airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).RegularSeatingCapacity += seatingDiff; AirlinerFacility seatingFacility = airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).getFacility(AirlinerFacility.FacilityType.Seat); int extraSeats = (int)(seatingDiff / seatingFacility.SeatUses); airliner.getAirlinerClass(AirlinerClass.ClassType.Economy_Class).SeatingCapacity += extraSeats; } else { airliner.clearAirlinerClasses(); foreach (AirlinerClassConfiguration aClass in ((AirlinerTypeConfiguration)airlinerTypeConfiguration).Classes) { AirlinerClass airlinerClass = new AirlinerClass(aClass.Type, aClass.SeatingCapacity); airlinerClass.RegularSeatingCapacity = aClass.RegularSeatingCapacity; foreach (AirlinerFacility facility in aClass.getFacilities()) { airlinerClass.setFacility(airliner.Airline, facility); } airlinerClass.SeatingCapacity = Convert.ToInt16(Convert.ToDouble(airlinerClass.RegularSeatingCapacity) / airlinerClass.getFacility(AirlinerFacility.FacilityType.Seat).SeatUses); airliner.addAirlinerClass(airlinerClass); } } } else if (airliner.Type is AirlinerCargoType) { airliner.clearAirlinerClasses(); AirlinerClass cargoClass = new AirlinerClass(AirlinerClass.ClassType.Economy_Class, 0); airliner.addAirlinerClass(cargoClass); } }