public bool HasManeuver(ManeuverHolder maneuverStruct) { string maneuverString = maneuverStruct.ToString(); return(HasManeuver(maneuverString)); }
protected virtual List <ManeuverHolder> GetAlternativeManeuvers(GenericMovement maneuver) { ManeuverHolder movementStruct = new ManeuverHolder ( maneuver.ManeuverSpeed, maneuver.Direction, maneuver.Bearing, maneuver.ColorComplexity ); if (IsForced) { if (!failedManeuvers.Contains(movementStruct)) { failedManeuvers.Add(movementStruct); } } ManeuverHolder alternativeMovementStruct = movementStruct; switch (maneuver.Bearing) { case ManeuverBearing.Straight: alternativeMovementStruct.Bearing = ManeuverBearing.Bank; alternativeMovementStruct.Direction = ManeuverDirection.Left; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); alternativeMovementStruct.Direction = ManeuverDirection.Right; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); break; case ManeuverBearing.Bank: alternativeMovementStruct.Bearing = ManeuverBearing.Turn; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); alternativeMovementStruct.Bearing = ManeuverBearing.Straight; alternativeMovementStruct.Direction = ManeuverDirection.Forward; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); break; case ManeuverBearing.Turn: alternativeMovementStruct.Bearing = ManeuverBearing.Bank; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); break; case ManeuverBearing.KoiogranTurn: alternativeMovementStruct.Bearing = ManeuverBearing.Bank; alternativeMovementStruct.Direction = ManeuverDirection.Left; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); alternativeMovementStruct.Direction = ManeuverDirection.Right; alternativeManeuvers.Add(GetSimilarManeuverByStruct(alternativeMovementStruct)); break; default: break; } return(alternativeManeuvers); }