private void flightUpdatePenaltyGrid() { Penalty localpenaltyCopy = flightCurrentPenalty; flightDataGridPenalties.Rows.Clear(); int totalFlightPenalties = 0; int totalLandingPenalties = 0; int totalPenalties = 0; foreach (Penalty penalty in flightCurrentFlight.Penalties) { int index = flightDataGridPenalties.Rows.Add(new string[] { penalty.PenaltyPoints.ToString(), penalty.PenaltyType.ToString(), penalty.Comment.ToString() }); flightDataGridPenalties.Rows[index].Tag = penalty; if (localpenaltyCopy == penalty) { flightDataGridPenalties.Rows[index].Selected = true; } if (penalty.PenaltyType == PenaltyType.Navigation) { totalFlightPenalties += penalty.PenaltyPoints; } else if (penalty.PenaltyType == PenaltyType.Landing) { totalLandingPenalties += penalty.PenaltyPoints; } totalPenalties += penalty.PenaltyPoints; } flightLblTotalFlightPenalties.Text = totalFlightPenalties.ToString(); flightLblTotalLandingPenalties.Text = totalLandingPenalties.ToString(); flightLblTotalPenalties.Text = totalPenalties.ToString(); flightCurrentPenalty = localpenaltyCopy; }
private void flightDataGridPenalties_CellClick(object sender, DataGridViewCellEventArgs e) { if (flightDataGridPenalties.SelectedRows.Count > 0) { flightCurrentPenalty = (Penalty)flightDataGridPenalties.SelectedRows[0].Tag; } else { flightCurrentPenalty = null; } flightUpdatePenaltyView(); }
private void flightDataGridPenalties_SelectionChanged(object sender, EventArgs e) { if (flightDataGridPenalties.SelectedRows.Count > 0) { flightCurrentPenalty = (Penalty)flightDataGridPenalties.SelectedRows[0].Tag; } else { flightCurrentPenalty = null; } flightUpdatePenaltyView(); }
private void flightCmdAddNewPenalty_Click(object sender, EventArgs e) { Penalty newPenalty = new Penalty(); newPenalty.PenaltyType = PenaltyType.Custom; newPenalty.Comment = "New Penalty"; newPenalty.PenaltyPoints = 0; flightCurrentPenalty = newPenalty; flightUpdatePenaltyView(); }
public bool Contains(Penalty item) { return items.Contains(item); }
public void Add(Penalty item) { items.Add(item); }
public void Remove(Penalty item) { items.Remove(item); }
private PenaltyCollection calculateForbiddenZonePenalties() { bool lastPointWasOffTrack = false; bool finishingGatePassed = false; List<TrackPoint> penaltyPoints = new List<TrackPoint>(); PenaltyCollection penalties = new PenaltyCollection(); List<List<TrackPoint>> penaltyPointsList = new List<List<TrackPoint>>(); for (int i = 0; i < this.Track.Count - 1; i++) { if (!finishingGatePassed) { TrackPoint trackpoint = this.Track[i]; if(route.EndGate.gatePassed(trackpoint, this.Track[i+1])) { break; } if(trackpoint.TimeStamp > PlannedFinishGateTime.AddSeconds(120)) { break; } if (this.Parcours.IsPointOffTrack(trackpoint)) { lastPointWasOffTrack = true; penaltyPoints.Add(trackpoint); } else { if (lastPointWasOffTrack) { penaltyPointsList.Add(penaltyPoints); penaltyPoints = new List<TrackPoint>(); } lastPointWasOffTrack = false; } } } foreach (List<TrackPoint> penaltySequence in penaltyPointsList) { int durance = penaltySequence.Count; Penalty penalty = new Penalty(); penalty.PenaltyType = PenaltyType.Navigation; if(durance > 5 && durance*3 < 200) { penalty.PenaltyPoints = durance * 3; } else if(durance * 3 > 200) { penalty.PenaltyPoints = 200; } penalty.Comment = "Entering Restricted Area (" + penaltySequence[0].TimeStamp.ToString("HH:mm:ss") + " until " + penaltySequence[penaltySequence.Count - 1].TimeStamp.ToString("HH:mm:ss") + "), total " + Math.Floor((penaltySequence[penaltySequence.Count - 1].TimeStamp.Subtract(penaltySequence[0].TimeStamp)).TotalSeconds + 1).ToString() + " seconds"; penalties.Add(penalty); } return penalties; }