public Asml() { InitializeComponent(); launcher = new LauncherAdapter(); threadCamera = new Threads(); target = new TargetManager(); control = new Controller(); stopwatch = new Stopwatch(); target.AddedTarget +=manager_AddedTarget; threadCamera.DataCaptured += new EventHandler<CameraEventArgs>(thread_DataCaptured); }
// Controller depending on the mode, performs the search and destroy using targets data public bool Destroy(TargetManager target, IMissileLauncher launcher, ModeType Mode) { int number_of_lines_per_target = 7; int number_of_targets = target.TargetList.Count / number_of_lines_per_target; int target_number = 1; while (target_number <= number_of_targets && !_shouldStop) { target.SetTarget(target_number); Converter coordinates = new Converter(target.X, target.Y, target.Z); switch (Mode) { case ModeType.fireAll: if (!_shouldStop) launcher.MoveTo(coordinates.Phi, coordinates.Theta); if (!_shouldStop) launcher.Fire(); break; case ModeType.fireFoes: if (!target.Friend) { if (!_shouldStop) launcher.MoveTo(coordinates.Phi, coordinates.Theta); if (!_shouldStop) launcher.Fire(); } break; case ModeType.fireFriends: if (target.Friend) { if (!_shouldStop) launcher.MoveTo(coordinates.Phi, coordinates.Theta); if (!_shouldStop) launcher.Fire(); } break; } target_number++; } return true; }