Example #1
0
    // Update is called once per frame
    void Update()
    {
        AIHelpers.InputParameters inputData      = new AIHelpers.InputParameters(gameObject.transform, attackObject.transform, Time.deltaTime, maxSpeed);
        AIHelpers.MovementResult  movementResult = new AIHelpers.MovementResult();

        switch (activeMovementBehavior)
        {
        case AIHelpers.MovementBehaviors.Idle:
            AIHelpers.Idle(inputData, ref movementResult);
            break;

        case AIHelpers.MovementBehaviors.Attack:
            AIHelpers.Attack(inputData, ref movementResult);
            break;

        case AIHelpers.MovementBehaviors.AttackCooldown:

            AIHelpers.AttackCooldown(inputData, ref movementResult);

            break;

        default:
            //AIHelpers.SeekKinematic(inputData, ref movementResult);
            movementResult.newPosition = transform.position;
            break;
        }

        gameObject.transform.position = movementResult.newPosition;
    }
Example #2
0
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            Route route = (Route)cbRoute.SelectedItem;

            int flightsPerDay = (int)cbFlightsPerDay.SelectedItem;

            string flightcode1 = cbFlightCode.SelectedItem.ToString();
            string flightcode2 = this.Airliner.Airliner.Airline.getFlightCodes()[this.Airliner.Airliner.Airline.getFlightCodes().IndexOf(flightcode1) + 1];

            if (flightsPerDay > 0)
            {
                if (cbBusinessRoute.IsChecked.Value)
                {
                    flightsPerDay = (int)(route.getFlightTime(this.Airliner.Airliner.Type).Add(FleetAirlinerHelpers.GetMinTimeBetweenFlights(this.Airliner)).TotalMinutes / 2 / maxBusinessRouteTime);
                    this.Selected = AIHelpers.CreateBusinessRouteTimeTable(route, this.Airliner, Math.Max(1, flightsPerDay), flightcode1, flightcode2);
                }
                else
                {
                    this.Selected = AIHelpers.CreateAirlinerRouteTimeTable(route, this.Airliner, flightsPerDay, flightcode1, flightcode2);
                }
            }
            else
            {
                this.Selected = null;
            }
            this.Close();
        }
        //creates the pilot ranking for a pilot student
        public static Pilot.PilotRating GetPilotStudentRanking(PilotStudent student)
        {
            Pilot.PilotRating instructorRanking = student.Instructor.Rating;
            int aircraftCoeff = student.Instructor.FlightSchool.TrainingAircrafts.Exists(a => a.Type.MaxNumberOfStudents > 5) ? 10 : 0;

            int instructorRankingIndex = Array.IndexOf(Enum.GetValues(typeof(Pilot.PilotRating)), instructorRanking);
            Dictionary <Pilot.PilotRating, int> rankings = new Dictionary <Pilot.PilotRating, int>();

            rankings.Add(instructorRanking, 50);

            if (instructorRankingIndex > 0)
            {
                Pilot.PilotRating prevRating = (Pilot.PilotRating)Enum.GetValues(typeof(Pilot.PilotRating)).GetValue(instructorRankingIndex - 1);
                rankings.Add(prevRating, 35 - aircraftCoeff);
            }
            if (instructorRankingIndex < Enum.GetValues(typeof(Pilot.PilotRating)).Length - 1)
            {
                Pilot.PilotRating nextRating = (Pilot.PilotRating)Enum.GetValues(typeof(Pilot.PilotRating)).GetValue(instructorRankingIndex + 1);

                rankings.Add(nextRating, 15 + aircraftCoeff);
            }

            Pilot.PilotRating rating = AIHelpers.GetRandomItem <Pilot.PilotRating>(rankings);

            return(rating);
        }
Example #4
0
    public void SendDamageInRange()
    {
        GameObject enemy = null;

        if (isPlayer == false)
        {
//            AIMemory memory = GetComponent<AIMemory>();
            enemy = AIHelpers.FindClosestEnemy(enemyLayers, melee_position, true, melee_range, melee_angle);
            if (enemy != null && enemy.transform.root.GetComponent <Health>())
            {
                enemy.transform.root.GetComponent <Health>().ApplyDamage(melee_damage, gameObject);
            }
        }
        else if (isPlayer == true)
        {
            Camera     cam = GameObject.FindGameObjectWithTag("PlayerCamera").GetComponent <Camera>();
            Ray        ray = cam.ScreenPointToRay(new Vector3(Screen.height / 2, Screen.width / 2, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, melee_range, enemyLayers))
            {
                if (hit.transform.root.GetComponent <Health>())
                {
                    punch_source.clip = punch_sounds[Random.Range(0, punch_sounds.Length - 1)];
                    punch_source.Play();
                    hit.transform.root.GetComponent <Health>().ApplyDamage(melee_damage, gameObject);
                }
            }
        }
    }
        //creates a number of pilots
        public static void CreatePilots(int count)
        {
            List <Town> towns = Towns.GetTowns();

            Random rnd = new Random();

            for (int i = 0; i < count; i++)
            {
                Town         town      = towns[rnd.Next(towns.Count)];
                DateTime     birthdate = MathHelpers.GetRandomDate(GameObject.GetInstance().GameTime.AddYears(-Pilot.RetirementAge), GameObject.GetInstance().GameTime.AddYears(-23));
                PilotProfile profile   = new PilotProfile(Names.GetInstance().getRandomFirstName(), Names.GetInstance().getRandomLastName(), birthdate, town);

                Dictionary <Pilot.PilotRating, int> rankings = new Dictionary <Pilot.PilotRating, int>();
                rankings.Add(Pilot.PilotRating.A, 10);
                rankings.Add(Pilot.PilotRating.B, 20);
                rankings.Add(Pilot.PilotRating.C, 40);
                rankings.Add(Pilot.PilotRating.D, 20);
                rankings.Add(Pilot.PilotRating.E, 10);

                Pilot.PilotRating ranking = AIHelpers.GetRandomItem <Pilot.PilotRating>(rankings);

                int fromYear = Math.Min(GameObject.GetInstance().GameTime.Year - 1, birthdate.AddYears(23).Year);
                int toYear   = Math.Min(GameObject.GetInstance().GameTime.Year, birthdate.AddYears(Pilot.RetirementAge).Year);

                DateTime educationTime = MathHelpers.GetRandomDate(birthdate.AddYears(23), new DateTime(toYear, 1, 1));
                Pilot    pilot         = new Pilot(profile, educationTime, ranking);

                Pilots.AddPilot(pilot);
            }
        }
Example #6
0
        //creates the pilot rating for a pilot student
        public static PilotRating GetPilotStudentRating(Instructor instructor)
        {
            PilotRating instructorRanking = instructor.Rating;
            int         aircraftCoeff     = instructor.FlightSchool.TrainingAircrafts.Exists(a => a.Type.MaxNumberOfStudents > 5) ? 10 : 0;

            int instructorRankingIndex             = PilotRatings.GetRatings().IndexOf(instructorRanking);
            Dictionary <PilotRating, int> rankings = new Dictionary <PilotRating, int>();

            rankings.Add(instructorRanking, 50);

            if (instructorRankingIndex > 0)
            {
                PilotRating prevRating = PilotRatings.GetRatings()[instructorRankingIndex - 1];
                rankings.Add(prevRating, 35 - aircraftCoeff);
            }
            if (instructorRankingIndex < PilotRatings.GetRatings().Count)
            {
                PilotRating nextRating = PilotRatings.GetRatings()[instructorRankingIndex + 1];

                rankings.Add(nextRating, 15 + aircraftCoeff);
            }

            PilotRating rating = AIHelpers.GetRandomItem <PilotRating>(rankings);

            return(rating);
        }
Example #7
0
        //creates a number of instructors
        public static void CreateInstructors(int count)
        {
            List <Town> towns = Towns.GetTowns();

            Random rnd = new Random();

            for (int i = 0; i < count; i++)
            {
                Town         town      = towns[rnd.Next(towns.Count)];
                DateTime     birthdate = MathHelpers.GetRandomDate(GameObject.GetInstance().GameTime.AddYears(-Pilot.RetirementAge), GameObject.GetInstance().GameTime.AddYears(-23));
                PilotProfile profile   = new PilotProfile(Names.GetInstance().getRandomFirstName(town.Country), Names.GetInstance().getRandomLastName(town.Country), birthdate, town);

                Dictionary <PilotRating, int> rankings = new Dictionary <PilotRating, int>();
                rankings.Add(PilotRatings.GetRating("A"), 10);
                rankings.Add(PilotRatings.GetRating("B"), 20);
                rankings.Add(PilotRatings.GetRating("C"), 40);
                rankings.Add(PilotRatings.GetRating("D"), 20);
                rankings.Add(PilotRatings.GetRating("E"), 10);

                PilotRating ranking = AIHelpers.GetRandomItem <PilotRating>(rankings);

                Instructor instructor = new Instructor(profile, ranking);

                Instructors.AddInstructor(instructor);
            }
        }
Example #8
0
 public void LookAtDestination()
 {
     AIHelpers.lookAtTarget(memory.movePoint, transform, 30);
     if (Vector3.Angle(transform.position, memory.movePoint) < 1.0f)
     {
         Task.current.Succeed();
     }
 }
Example #9
0
 public void LookAtEnemy()
 {
     if (memory.enemy != null)
     {
         AIHelpers.lookAtTarget(memory.enemy.transform.position, transform, 1);
     }
     Task.current.Succeed();
 }
Example #10
0
        private void btnAddGenerator_Click(object sender, RoutedEventArgs e)
        {
            Route route = (Route)cbRoute.SelectedItem;

            RouteTimeTable rt = null;

            IntervalType intervalType = (IntervalType)cbIntervalType.SelectedItem;
            int          interval     = Convert.ToInt16(cbInterval.SelectedItem);
            OpsType      opsType      = (OpsType)cbSchedule.SelectedItem;
            int          delayMinutes = (int)cbDelayMinutes.SelectedItem;

            double   maxBusinessRouteTime = new TimeSpan(2, 0, 0).TotalMinutes;
            TimeSpan startTime            = (TimeSpan)cbStartTime.SelectedItem;

            string flightcode1 = this.Airliner.Airliner.Airline.Profile.IATACode + txtFlightNumber.Text;
            string flightcode2 = this.Airliner.Airliner.Airline.getFlightCodes()[this.Airliner.Airliner.Airline.getFlightCodes().IndexOf(flightcode1) + 1];

            if (opsType == OpsType.Business)
            {
                int flightsPerDay = (int)(route.getFlightTime(this.Airliner.Airliner.Type).Add(FleetAirlinerHelpers.GetMinTimeBetweenFlights(this.Airliner)).TotalMinutes / 2 / maxBusinessRouteTime);
                rt = AIHelpers.CreateBusinessRouteTimeTable(route, this.Airliner, Math.Max(1, flightsPerDay), flightcode1, flightcode2);
            }
            if (intervalType == IntervalType.Day && opsType != OpsType.Business)
            {
                rt = AIHelpers.CreateAirlinerRouteTimeTable(route, this.Airliner, interval, true, delayMinutes, startTime, flightcode1, flightcode2);
            }
            if (intervalType == IntervalType.Week && opsType != OpsType.Business)
            {
                rt = AIHelpers.CreateAirlinerRouteTimeTable(route, this.Airliner, interval, false, delayMinutes, startTime, flightcode1, flightcode2);
            }
            if (!TimeTableHelpers.IsTimeTableValid(rt, this.Airliner, this.Entries.ToList(), false))
            {
                WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2705"), Translator.GetInstance().GetString("MessageBox", "2705", "message"), WPFMessageBoxButtons.YesNo);

                if (result == WPFMessageBoxResult.Yes)
                {
                    clearTimeTable();

                    foreach (RouteTimeTableEntry entry in rt.Entries)
                    {
                        if (!TimeTableHelpers.IsRouteEntryInOccupied(entry, this.Airliner))
                        {
                            this.Entries.Add(entry);
                        }
                    }
                }
            }
            else
            {
                foreach (RouteTimeTableEntry entry in rt.Entries)
                {
                    if (!TimeTableHelpers.IsRouteEntryInOccupied(entry, this.Airliner))
                    {
                        this.Entries.Add(entry);
                    }
                }
            }
        }
Example #11
0
        protected override IAssignment GetNewOrCurrentAssignment(ActionPriority priority)
        {
            switch (this.State)
            {
            case DwarfState.Working:
            {
                Debug.Assert(m_target == null);

                m_target = AIHelpers.FindNearestEnemy(this.Worker, LivingCategory.Monster);

                if (m_target == null)
                {
                    // continue doing work

                    if (this.CurrentAssignment != null)
                    {
                        return(this.CurrentAssignment);
                    }

                    return(this.JobManager.FindAssignment(this.Worker));
                }

                this.State = DwarfState.Fighting;

                trace.TraceInformation("Found target: {0}", m_target);

                if (this.CurrentAssignment == null || (this.CurrentAssignment is AttackAssignment) == false)
                {
                    trace.TraceInformation("Start attacking: {0}", m_target);

                    var assignment = new AttackAssignment(this, m_target);
                    return(assignment);
                }
                else
                {
                    trace.TraceInformation("Continue attacking: {0}", m_target);
                    return(this.CurrentAssignment);
                }
            }

            case DwarfState.Fighting:
                if (m_target.IsDestructed)
                {
                    return(null);
                }

                Debug.Assert(this.CurrentAssignment != null);

                trace.TraceInformation("Continue attacking: {0}", m_target);

                return(this.CurrentAssignment);

            default:
                throw new Exception();
            }
        }
Example #12
0
        //returns if two airports can have route between them and if the airline has license for the route
        private Boolean checkRouteOk(Airport airport1, Airport airport2)
        {
            Boolean isCargoRouteOk = true;

            if (this.RouteType == Route.RouteType.Cargo)
            {
                isCargoRouteOk = AIHelpers.IsCargoRouteDestinationsCorrect(airport1, airport2, GameObject.GetInstance().HumanAirline);
            }

            return(isCargoRouteOk && AirlineHelpers.HasAirlineLicens(GameObject.GetInstance().HumanAirline, airport1, airport2) && AIHelpers.IsRouteInCorrectArea(airport1, airport2) && !FlightRestrictions.HasRestriction(airport1.Profile.Country, airport2.Profile.Country, GameObject.GetInstance().GameTime, FlightRestriction.RestrictionType.Flights) && !FlightRestrictions.HasRestriction(airport2.Profile.Country, airport1.Profile.Country, GameObject.GetInstance().GameTime, FlightRestriction.RestrictionType.Flights) && !FlightRestrictions.HasRestriction(GameObject.GetInstance().HumanAirline, airport1.Profile.Country, airport2.Profile.Country, GameObject.GetInstance().GameTime));
        }
Example #13
0
 public bool InValidCover()
 {
     if (memory.cover == null)
     {
         return(false);
     }
     if (!AIHelpers.CanSeeObject(memory.enemy, memory.cover.transform, 360, memory.visualRange, memory.showVisuals))
     {
         return(true);
     }
     return(false);
 }
Example #14
0
        //returns a rating for a pilot
        public static PilotRating GetPilotRating()
        {
            Dictionary <PilotRating, int> ratings = new Dictionary <PilotRating, int>();

            ratings.Add(PilotRatings.GetRating("A"), 10);
            ratings.Add(PilotRatings.GetRating("B"), 20);
            ratings.Add(PilotRatings.GetRating("C"), 40);
            ratings.Add(PilotRatings.GetRating("D"), 20);
            ratings.Add(PilotRatings.GetRating("E"), 10);

            return(AIHelpers.GetRandomItem <PilotRating>(ratings));
        }
Example #15
0
        bool CanSeeEnemy()
        {
            bool ret_val = false;

            memory.enemy = AIHelpers.FindClosestEnemy(memory.enemy_tags, transform, false, memory.visualRange, memory.fieldOfView);
            if (memory.enemy != null)
            {
                ret_val = AIHelpers.CanSeeObject(memory.enemy, memory.eyes, memory.fieldOfView, memory.visualRange, memory.showVisuals);
                if (ret_val == true)
                {
                    memory.last_enemy_loc = memory.enemy.transform;
                }
            }

            return(ret_val);
        }
Example #16
0
 private void bw_DoWork(object sender, DoWorkEventArgs e)
 {
     foreach (Airline airline in Airlines.GetAllAirlines())
     {
         if ((this.Worker.CancellationPending == true))
         {
             e.Cancel = true;
         }
         else
         {
             if (!airline.IsHuman)
             {
                 AIHelpers.UpdateCPUAirline(airline);
             }
         }
     }
 }
Example #17
0
        void CheckForHit()
        {
            GameObject hitObj = AIHelpers.InaccurateRaycast(memory.enemy.transform, memory.fire_point, 1.0f, memory.inaccuracy, 999, transform, memory.showVisuals);

            if (hitObj && hitObj.transform.root.GetComponent <Health>())
            {
                hitObj.transform.root.GetComponent <Health>().ApplyDamage(memory.damage_per_shot, this.gameObject);
            }
            else if (hitObj)
            {
                ParticleSystem ps = GetComponent <AIVisualsLib>().GetParticle(hitObj.tag);
                if (ps)
                {
                    RaycastHit hit = AIHelpers.GetRaycast(memory.enemy.transform, memory.fire_point, memory.inaccuracy, 999, transform, memory.showVisuals);
                    Instantiate(ps, hit.point, Quaternion.LookRotation(hit.normal));
                }
            }
        }
        private void btnJoin_Click(object sender, RoutedEventArgs e)
        {
            WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2601"), string.Format(Translator.GetInstance().GetString("MessageBox", "2601", "message"), this.Alliance.Alliance.Name), WPFMessageBoxButtons.YesNo);

            if (result == WPFMessageBoxResult.Yes)
            {
                if (AIHelpers.CanJoinAlliance(GameObject.GetInstance().HumanAirline, this.Alliance.Alliance))
                {
                    WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2607"), string.Format(Translator.GetInstance().GetString("MessageBox", "2607", "message"), GameObject.GetInstance().HumanAirline.Profile.Name, this.Alliance.Alliance.Name), WPFMessageBoxButtons.Ok);

                    this.Alliance.addMember(new AllianceMember(GameObject.GetInstance().HumanAirline, GameObject.GetInstance().GameTime));
                }
                else
                {
                    WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2608"), string.Format(Translator.GetInstance().GetString("MessageBox", "2608", "message"), GameObject.GetInstance().HumanAirline.Profile.Name, this.Alliance.Alliance.Name), WPFMessageBoxButtons.Ok);
                }
            }
        }
        private void btnRemoveFromAlliance_Click(object sender, RoutedEventArgs e)
        {
            AllianceMemberMVVM member = (AllianceMemberMVVM)((Button)sender).Tag;

            if (AIHelpers.CanRemoveFromAlliance(GameObject.GetInstance().HumanAirline, member.Member.Airline, this.Alliance.Alliance))
            {
                WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2609"), string.Format(Translator.GetInstance().GetString("MessageBox", "2609", "message"), member.Member.Airline.Profile.Name), WPFMessageBoxButtons.YesNo);

                if (result == WPFMessageBoxResult.Yes)
                {
                    this.Alliance.removeMember(member);
                }
            }
            else
            {
                WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2610"), string.Format(Translator.GetInstance().GetString("MessageBox", "2610", "message"), member.Member.Airline.Profile.Name), WPFMessageBoxButtons.Ok);
            }
        }
Example #20
0
        public void MoveToNearestCover()
        {
            Transform cover = AIHelpers.ReturnValidCover(memory.cover_tags, memory.enemy.transform, memory.eyes, memory.visualRange, memory.showTargetCover);

            if (cover != null)
            {
                if (memory.cover != cover && memory.cover != null)
                {
                    memory.cover.tag = memory.cover_tags[0];
                }
                memory.cover     = cover.gameObject;
                memory.cover.tag = "Untagged";
                agent.SetDestination(cover.position);
            }
            else
            {
                agent.SetDestination(transform.position);
            }
            Task.current.Succeed();
        }
        //sets up an scenario airline route
        private static void SetupScenarioRoute(ScenarioAirlineRoute saroute, Airline airline)
        {
            SetupScenarioAirport(airline, saroute.Destination1, saroute.Quantity);
            SetupScenarioAirport(airline, saroute.Destination2, saroute.Quantity);

            double price = PassengerHelpers.GetPassengerPrice(saroute.Destination1, saroute.Destination2);

            for (int i = 0; i < saroute.Quantity; i++)
            {
                Guid id = Guid.NewGuid();

                PassengerRoute route = new PassengerRoute(id.ToString(), saroute.Destination1, saroute.Destination2, price);

                RouteClassesConfiguration configuration = AIHelpers.GetRouteConfiguration(route);

                foreach (RouteClassConfiguration classConfiguration in configuration.getClasses())
                {
                    route.getRouteAirlinerClass(classConfiguration.Type).FarePrice = price * GeneralHelpers.ClassToPriceFactor(classConfiguration.Type);

                    foreach (RouteFacility rfacility in classConfiguration.getFacilities())
                    {
                        route.getRouteAirlinerClass(classConfiguration.Type).addFacility(rfacility);
                    }
                }

                airline.addRoute(route);

                FleetAirliner fAirliner = AirlineHelpers.CreateAirliner(airline, saroute.AirlinerType);
                airline.addAirliner(fAirliner);

                fAirliner.addRoute(route);

                AIHelpers.CreateRouteTimeTable(route, fAirliner);

                fAirliner.Status = FleetAirliner.AirlinerStatus.To_route_start;
                AirlineHelpers.HireAirlinerPilots(fAirliner);

                route.LastUpdated = GameObject.GetInstance().GameTime;
            }
        }
        private void btnInvite_Click(object sender, RoutedEventArgs e)
        {
            object o = PopUpInviteAlliance.ShowPopUp(this.Alliance.Alliance);

            if (o != null)
            {
                List <Airline> airlines = (List <Airline>)o;

                foreach (Airline airline in airlines)
                {
                    if (AIHelpers.DoAcceptAllianceInvitation(airline, this.Alliance.Alliance))
                    {
                        WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2605"), string.Format(Translator.GetInstance().GetString("MessageBox", "2605", "message"), airline.Profile.Name, this.Alliance.Alliance.Name), WPFMessageBoxButtons.Ok);
                        this.Alliance.addMember(new AllianceMember(airline, GameObject.GetInstance().GameTime));
                    }
                    else
                    {
                        WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2606"), string.Format(Translator.GetInstance().GetString("MessageBox", "2606", "message"), airline.Profile.Name, this.Alliance.Alliance.Name), WPFMessageBoxButtons.Ok);
                    }
                }
            }
        }
Example #23
0
        private void hlAlliance_Click(object sender, RoutedEventArgs e)
        {
            ComboBox cbAlliances = new ComboBox();

            cbAlliances.SetResourceReference(ComboBox.StyleProperty, "ComboBoxTransparentStyle");
            cbAlliances.SelectedValuePath   = "Name";
            cbAlliances.DisplayMemberPath   = "Name";
            cbAlliances.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            cbAlliances.Width = 200;

            foreach (Alliance alliance in GameObject.GetInstance().HumanAirline.Alliances)
            {
                cbAlliances.Items.Add(alliance);
            }

            cbAlliances.SelectedIndex = 0;

            if (PopUpSingleElement.ShowPopUp(Translator.GetInstance().GetString("PageAirline", "1005"), cbAlliances) == PopUpSingleElement.ButtonSelected.OK && cbAlliances.SelectedItem != null)
            {
                Alliance alliance = (Alliance)cbAlliances.SelectedItem;
                if (AIHelpers.DoAcceptAllianceInvitation(this.Airline.Airline, alliance))
                {
                    WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2605"), string.Format(Translator.GetInstance().GetString("MessageBox", "2605", "message"), this.Airline.Airline.Profile.Name, alliance.Name), WPFMessageBoxButtons.Ok);
                    alliance.addMember(new AllianceMember(this.Airline.Airline, GameObject.GetInstance().GameTime));

                    this.Airline.Alliance = alliance;

                    this.CanHaveAlliance = false;
                    this.ShowActionMenu  = !this.Airline.Airline.IsHuman && (this.CanHaveAlliance || !this.HasCodesharing);
                }
                else
                {
                    WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2606"), string.Format(Translator.GetInstance().GetString("MessageBox", "2606", "message"), this.Airline.Airline.Profile.Name, alliance.Name), WPFMessageBoxButtons.Ok);
                }
            }
        }
Example #24
0
        private void cbDestination_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (cbDestination2.SelectedItem != null && cbDestination1.SelectedItem != null)
            {
                Airport airport1  = (Airport)cbDestination1.SelectedItem;
                Airport airport2  = (Airport)cbDestination2.SelectedItem;
                Airport stopover1 = ucStopover1.Value;
                Airport stopover2 = ucStopover2.Value;

                List <double>  distances    = new List <double>();
                List <Airport> destinations = new List <Airport>();

                destinations.Add(airport1);

                Boolean isRouteOk = false;

                if (stopover1 == null && stopover2 == null)
                {
                    distances.Add(MathHelpers.GetDistance(airport1, airport2));
                    isRouteOk = checkRouteOk(airport1, airport2);
                }

                if (stopover1 == null && stopover2 != null)
                {
                    distances.Add(MathHelpers.GetDistance(airport1, stopover2));
                    distances.Add(MathHelpers.GetDistance(stopover2, airport2));
                    isRouteOk = checkRouteOk(airport1, stopover2) && checkRouteOk(stopover2, airport2);
                    destinations.Add(stopover2);
                }

                if (stopover1 != null && stopover2 == null)
                {
                    distances.Add(MathHelpers.GetDistance(airport1, stopover1));
                    distances.Add(MathHelpers.GetDistance(stopover1, airport2));
                    isRouteOk = checkRouteOk(airport1, stopover1) && checkRouteOk(stopover1, airport2);
                    destinations.Add(stopover1);
                }

                if (stopover1 != null && stopover2 != null)
                {
                    distances.Add(MathHelpers.GetDistance(airport1, stopover1));
                    distances.Add(MathHelpers.GetDistance(stopover1, stopover2));
                    distances.Add(MathHelpers.GetDistance(stopover2, airport2));
                    isRouteOk = checkRouteOk(airport1, stopover1) && checkRouteOk(stopover1, stopover2) && checkRouteOk(stopover2, airport2);
                    destinations.Add(stopover1);
                    destinations.Add(stopover2);
                }

                destinations.Add(airport2);

                foreach (RouteAirlinerClass aClass in this.Classes.Values)
                {
                    aClass.FarePrice = PassengerHelpers.GetPassengerPrice(airport1, airport2) * GeneralHelpers.ClassToPriceFactor(aClass.Type);
                }

                double maxDistance = distances.Max();
                double minDistance = distances.Min();

                txtDistance.Text = string.Format("{0:0} {1}", new NumberToUnitConverter().Convert(maxDistance), new StringToLanguageConverter().Convert("km."));

                btnSave.IsEnabled = minDistance > 50 && maxDistance < this.MaxDistance && isRouteOk;
                btnLoad.IsEnabled = btnSave.IsEnabled;

                txtInvalidRoute.Visibility = isRouteOk ? Visibility.Collapsed : Visibility.Visible;

                if (this.RouteType == Route.RouteType.Cargo && !AIHelpers.IsCargoRouteDestinationsCorrect(airport1, airport2, GameObject.GetInstance().HumanAirline))
                {
                    txtInvalidRoute.Text = Translator.GetInstance().GetString("PanelNewRoute", "1009");
                }

                txtRoute.Text = string.Join(" <-> ", from d in destinations select new AirportCodeConverter().Convert(d).ToString());
            }

            if (sender is ComboBox)
            {
                Airport airport = (Airport)((ComboBox)sender).SelectedItem;

                TextBlock txtDestinationGates = cbDestination2 == ((ComboBox)sender) ? txtDestination2Gates : txtDestination1Gates;

                txtDestinationGates.Text = string.Format(Translator.GetInstance().GetString("PanelNewRoute", "206"), airport.Terminals.getFreeSlotsPercent(GameObject.GetInstance().HumanAirline));
            }
        }
Example #25
0
 public void LookAtLastEnemyLocation()
 {
     AIHelpers.lookAtTarget(memory.last_enemy_loc.position, transform, 30);
 }
Example #26
0
        public bool AIMove()
        {
            var move = AIHelpers.Minimax(this, 1);

            return(this.Move(move));
        }
Example #27
0
 public void MoveToRandomPoint()
 {
     memory.movePoint = AIHelpers.ChooseRandomPoint(transform.position, memory.wander_radius);
     agent.SetDestination(memory.movePoint);
     Task.current.Succeed();
 }
Example #28
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            Route route = (Route)cbRoute.SelectedItem;

            RouteTimeTable rt;

            int      flightsPerDay  = (int)cbFlightsPerDay.SelectedItem;
            int      flightsPerWeek = (int)cbFlightsPerWeek.SelectedItem;
            int      delayMinutes   = (int)cbDelayMinutes.SelectedItem;
            TimeSpan startTime      = (TimeSpan)cbStartTime.SelectedItem;

            string flightcode1 = cbFlightCode.SelectedItem.ToString();
            string flightcode2 = this.Airliner.Airliner.Airline.getFlightCodes()[this.Airliner.Airliner.Airline.getFlightCodes().IndexOf(flightcode1) + 1];

            if (flightsPerDay > 0)
            {
                if (this.RouteOperations == RouteOperationsType.Business)
                {
                    flightsPerDay = (int)(route.getFlightTime(this.Airliner.Airliner.Type).Add(FleetAirlinerHelpers.GetMinTimeBetweenFlights(this.Airliner)).TotalMinutes / 2 / maxBusinessRouteTime);
                    rt            = AIHelpers.CreateBusinessRouteTimeTable(route, this.Airliner, Math.Max(1, flightsPerDay), flightcode1, flightcode2);
                }
                else
                {
                    if (this.Interval == FlightInterval.Daily)
                    {
                        rt = AIHelpers.CreateAirlinerRouteTimeTable(route, this.Airliner, flightsPerDay, true, delayMinutes, startTime, flightcode1, flightcode2);
                    }
                    else
                    {
                        rt = AIHelpers.CreateAirlinerRouteTimeTable(route, this.Airliner, flightsPerWeek, false, delayMinutes, startTime, flightcode1, flightcode2);
                    }
                }
            }
            else
            {
                rt = null;
            }

            if (!TimeTableHelpers.IsTimeTableValid(rt, this.Airliner, this.ParentPage.Entries, false))
            {
                WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2705"), Translator.GetInstance().GetString("MessageBox", "2705", "message"), WPFMessageBoxButtons.YesNo);

                if (result == WPFMessageBoxResult.Yes)
                {
                    this.ParentPage.NewestEntries.Clear();
                    this.ParentPage.clearTimeTable();

                    if (!this.ParentPage.Entries.ContainsKey(route))
                    {
                        this.ParentPage.Entries.Add(route, new List <RouteTimeTableEntry>());
                    }


                    foreach (RouteTimeTableEntry entry in rt.Entries)
                    {
                        if (!TimeTableHelpers.IsRouteEntryInOccupied(entry, this.Airliner))
                        {
                            this.ParentPage.Entries[route].Add(entry);
                            this.ParentPage.NewestEntries.Add(entry);
                        }
                    }
                }
            }
            else
            {
                if (!this.ParentPage.Entries.ContainsKey(route))
                {
                    this.ParentPage.Entries.Add(route, new List <RouteTimeTableEntry>());
                }

                foreach (RouteTimeTableEntry entry in rt.Entries)
                {
                    if (!TimeTableHelpers.IsRouteEntryInOccupied(entry, this.Airliner))
                    {
                        this.ParentPage.Entries[route].Add(entry);
                        this.ParentPage.NewestEntries.Add(entry);
                    }
                }
            }


            this.ParentPage.showFlights();
        }
Example #29
0
 public void MoveToWaypoint()
 {
     memory.movePoint = AIHelpers.FindNextWaypoint(ref memory.waypoint_index, memory.waypoints, memory.waypoint_travel, memory.waypoint_dir).transform.position;
     agent.SetDestination(memory.movePoint);
     Task.current.Succeed();
 }