public ScenarioObject(Scenario scenario) { this.Scenario = scenario; this.IsSuccess = false; this.Failures = new List<ScenarioFailureObject>(); foreach (ScenarioFailure failure in this.Scenario.Failures) this.Failures.Add(new ScenarioFailureObject(failure)); }
private void cbScenario_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.Scenario = (Scenario)((ComboBox)sender).SelectedItem; this.DataContext = this.Scenario; }
//adds a scenario to the list public static void AddScenario(Scenario scenario) { scenarios.Add(scenario); }
//sets up the passenger demand for a scenario private static void SetupScenarioPassengerDemand(Scenario scenario) { foreach (ScenarioPassengerDemand demand in scenario.PassengerDemands) { if (demand.Airport != null) PassengerHelpers.ChangePaxDemand(demand.Factor); if (demand.Country != null) PassengerHelpers.ChangePaxDemand(Airports.GetAllAirports(a => a.Profile.Country == demand.Country),demand.Factor); } }
//sets up the airlines for a scenario private static void SetupScenarioAirlines(Scenario scenario) { List<Airline> airlines = new List<Airline>(); airlines.Add(scenario.Airline); foreach (ScenarioAirline airline in scenario.OpponentAirlines) { airlines.Add(airline.Airline); SetupOpponentAirline(airline); } Airlines.Clear(); airlines.ForEach(a => Airlines.AddAirline(a)); SetupHumanAirline(scenario); }
//sets up a scenario public static void SetupScenario(Scenario scenario) { Airline airline = scenario.Airline; GameObject.GetInstance().DayRoundEnabled = true; GameObject.GetInstance().TimeZone = scenario.Homebase.Profile.TimeZone; GameObject.GetInstance().Difficulty = scenario.Difficulty; GameObject.GetInstance().GameTime = new DateTime(scenario.StartYear, 1, 1); GameObject.GetInstance().StartDate = GameObject.GetInstance().GameTime; //sets the fuel price GameObject.GetInstance().FuelPrice = Inflations.GetInflation(GameObject.GetInstance().GameTime.Year).FuelPrice; GameObject.GetInstance().setHumanAirline(airline); GameObject.GetInstance().MainAirline = GameObject.GetInstance().HumanAirline; GameObject.GetInstance().HumanAirline.Money = scenario.StartCash; GameObject.GetInstance().Scenario = new ScenarioObject(scenario); Airport airport = scenario.Homebase; SetupScenarioAirport(airline, airport); // PassengerHelpers.CreateDestinationPassengers(); AirlinerHelpers.CreateStartUpAirliners(); int pilotsPool = 100 * Airlines.GetAllAirlines().Count; GeneralHelpers.CreatePilots(pilotsPool); int instructorsPool = 75 * Airlines.GetAllAirlines().Count; GeneralHelpers.CreateInstructors(instructorsPool); SetupScenarioAirlines(scenario); SetupScenario(); Setup.SetupAlliances(); PassengerHelpers.CreateAirlineDestinationDemand(); GeneralHelpers.CreateHolidays(GameObject.GetInstance().GameTime.Year); GameObjectWorker.GetInstance().start(); PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline)); PageNavigator.ClearNavigator(); // GameObject.GetInstance().HumanAirline.Money = 1000000000; GameObject.GetInstance().NewsBox.addNews(new News(News.NewsType.Standard_News, GameObject.GetInstance().GameTime, Translator.GetInstance().GetString("News", "1001"), string.Format(Translator.GetInstance().GetString("News", "1001", "message"), GameObject.GetInstance().HumanAirline.Profile.CEO, GameObject.GetInstance().HumanAirline.Profile.IATACode))); Action<object> action = (object obj) => { PassengerHelpers.CreateDestinationDemand(); SetupScenarioPassengerDemand(scenario); }; Task t2 = Task.Factory.StartNew(action, "passengers"); }
//sets up the human airline private static void SetupHumanAirline(Scenario scenario) { foreach (Airport destination in scenario.Destinations) { SetupScenarioAirport(GameObject.GetInstance().HumanAirline, destination); } foreach (KeyValuePair<AirlinerType, int> fleetAirliner in scenario.Fleet) { for (int i = 0; i < fleetAirliner.Value; i++) { GameObject.GetInstance().HumanAirline.addAirliner(AirlineHelpers.CreateAirliner(GameObject.GetInstance().HumanAirline, fleetAirliner.Key)); } } foreach (ScenarioAirlineRoute route in scenario.Routes) { SetupScenarioRoute(route, GameObject.GetInstance().HumanAirline); } }
private static void LoadScenario(string filename) { XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlElement element = doc.DocumentElement; try { string scenarioName = element.Attributes["name"].Value; int startYear = Convert.ToInt32(element.Attributes["startYear"].Value); long startCash = Convert.ToInt64(element.Attributes["startCash"].Value); int endYear = Convert.ToInt32(element.Attributes["endYear"].Value); DifficultyLevel difficulty = DifficultyLevels.GetDifficultyLevel(element.Attributes["difficulty"].Value); string description = element.SelectSingleNode("intro").Attributes["text"].Value; string successText = element.SelectSingleNode("success").Attributes["text"].Value; XmlElement startElement = (XmlElement)element.SelectSingleNode("start"); Airline startAirline = Airlines.GetAirline(startElement.Attributes["airline"].Value); Airport homebase = Airports.GetAirport(startElement.Attributes["homeBase"].Value); if (startElement.HasAttribute("license")) startAirline.License = (Airline.AirlineLicense)Enum.Parse(typeof(Airline.AirlineLicense), startElement.Attributes["license"].Value); Scenario scenario = new Scenario(scenarioName, description, startAirline, homebase, startYear, endYear, startCash, difficulty); Scenarios.AddScenario(scenario); XmlNodeList humanRoutesList = startElement.SelectNodes("routes/route"); foreach (XmlElement humanRouteElement in humanRoutesList) { Airport routeDestination1 = Airports.GetAirport(humanRouteElement.Attributes["departure"].Value); Airport routeDestination2 = Airports.GetAirport(humanRouteElement.Attributes["destination"].Value); AirlinerType routeAirlinerType = AirlinerTypes.GetType(humanRouteElement.Attributes["airliner"].Value); int routeQuantity = Convert.ToInt32(humanRouteElement.Attributes["quantity"].Value); scenario.addRoute(new ScenarioAirlineRoute(routeDestination1, routeDestination2, routeAirlinerType, routeQuantity)); } XmlNodeList destinationsList = startElement.SelectNodes("destinations/destination"); foreach (XmlElement destinationElement in destinationsList) scenario.addDestination(Airports.GetAirport(destinationElement.Attributes["airport"].Value)); XmlNodeList fleetList = startElement.SelectNodes("fleet/aircraft"); foreach (XmlElement fleetElement in fleetList) { AirlinerType fleetAirlinerType = AirlinerTypes.GetType(fleetElement.Attributes["name"].Value); int fleetQuantity = Convert.ToInt32(fleetElement.Attributes["quantity"].Value); scenario.addFleet(fleetAirlinerType, fleetQuantity); } XmlNodeList aiNodeList = startElement.SelectNodes("AI/airline"); foreach (XmlElement aiElement in aiNodeList) { Airline aiAirline = Airlines.GetAirline(aiElement.Attributes["name"].Value); Airport aiHomebase = Airports.GetAirport(aiElement.Attributes["homeBase"].Value); ScenarioAirline scenarioAirline = new ScenarioAirline(aiAirline, aiHomebase); XmlNodeList aiRoutesList = aiElement.SelectNodes("route"); foreach (XmlElement aiRouteElement in aiRoutesList) { Airport aiRouteDestination1 = Airports.GetAirport(aiRouteElement.Attributes["departure"].Value); Airport aiRouteDestination2 = Airports.GetAirport(aiRouteElement.Attributes["destination"].Value); AirlinerType routeAirlinerType = AirlinerTypes.GetType(aiRouteElement.Attributes["airliner"].Value); int routeQuantity = Convert.ToInt32(aiRouteElement.Attributes["quantity"].Value); scenarioAirline.addRoute(new ScenarioAirlineRoute(aiRouteDestination1, aiRouteDestination2, routeAirlinerType, routeQuantity)); } scenario.addOpponentAirline(scenarioAirline); } XmlNodeList modifiersList = element.SelectNodes("modifiers/paxDemand"); foreach (XmlElement paxElement in modifiersList) { Country country = null; Airport airport = null; if (paxElement.HasAttribute("country")) country = Countries.GetCountry(paxElement.Attributes["country"].Value); if (paxElement.HasAttribute("airport")) airport = Airports.GetAirport(paxElement.Attributes["airport"].Value); double factor = Convert.ToDouble(paxElement.Attributes["change"].Value, CultureInfo.GetCultureInfo("en-US").NumberFormat); DateTime enddate = new DateTime(scenario.StartYear + Convert.ToInt32(paxElement.Attributes["length"].Value), 1, 1); scenario.addPassengerDemand(new ScenarioPassengerDemand(factor, enddate, country, airport)); } XmlNodeList parametersList = element.SelectNodes("parameters/failure"); foreach (XmlElement parameterElement in parametersList) { string id = parameterElement.Attributes["id"].Value; ScenarioFailure.FailureType failureType = (ScenarioFailure.FailureType)Enum.Parse(typeof(ScenarioFailure.FailureType), parameterElement.Attributes["type"].Value); object failureValue = parameterElement.Attributes["value"].Value; double checkMonths = parameterElement.HasAttribute("at") ? 12 * Convert.ToDouble(parameterElement.Attributes["at"].Value, CultureInfo.GetCultureInfo("en-US").NumberFormat) : 1; string failureText = parameterElement.Attributes["text"].Value; double monthsOfFailure = parameterElement.HasAttribute("for") ? 12 * Convert.ToDouble(parameterElement.Attributes["for"].Value, CultureInfo.GetCultureInfo("en-US").NumberFormat) : 1; ScenarioFailure failure = new ScenarioFailure(id, failureType, (int)checkMonths, failureValue, failureText, (int)monthsOfFailure); scenario.addScenarioFailure(failure); } } catch (Exception e) { string s = e.ToString(); } }