Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 private void cbScenario_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     this.Scenario = (Scenario)((ComboBox)sender).SelectedItem;
     this.DataContext = this.Scenario;
 }
Ejemplo n.º 3
0
 //adds a scenario to the list
 public static void AddScenario(Scenario scenario)
 {
     scenarios.Add(scenario);
 }
Ejemplo n.º 4
0
        //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);

            }
        }
Ejemplo n.º 5
0
        //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);
        }
Ejemplo n.º 6
0
        //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");
        }
Ejemplo n.º 7
0
        //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);
            }
        }
Ejemplo n.º 8
0
        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();
            }
        }