// 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; }
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); }
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); } }
//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); }
//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); } }
public void LookAtDestination() { AIHelpers.lookAtTarget(memory.movePoint, transform, 30); if (Vector3.Angle(transform.position, memory.movePoint) < 1.0f) { Task.current.Succeed(); } }
public void LookAtEnemy() { if (memory.enemy != null) { AIHelpers.lookAtTarget(memory.enemy.transform.position, transform, 1); } Task.current.Succeed(); }
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); } } } }
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(); } }
//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)); }
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); }
//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)); }
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); }
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); } } } }
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); } }
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); } } } }
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); } } }
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)); } }
public void LookAtLastEnemyLocation() { AIHelpers.lookAtTarget(memory.last_enemy_loc.position, transform, 30); }
public bool AIMove() { var move = AIHelpers.Minimax(this, 1); return(this.Move(move)); }
public void MoveToRandomPoint() { memory.movePoint = AIHelpers.ChooseRandomPoint(transform.position, memory.wander_radius); agent.SetDestination(memory.movePoint); Task.current.Succeed(); }
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(); }
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(); }