using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyCommand : MonoBehaviour { [Header("Список врагов")] public List enemies = new(); [Header("Ссылка на команду пиратов")] public PirateCommand pirateTeam; [Header("Тайминги")] public Vector2 shootIntervalRange = new Vector2(10f, 15f); private void Start() { StartCoroutine(ShootingRoutine()); } private IEnumerator ShootingRoutine() { while (true) { float waitTime = Random.Range(shootIntervalRange.x, shootIntervalRange.y); yield return new WaitForSeconds(waitTime); AssignRandomEnemyToShoot(); } } private void AssignRandomEnemyToShoot() { if (enemies.Count == 0 || pirateTeam == null || pirateTeam.pirates.Count == 0) return; // фильтруем активных врагов List freeEnemies = enemies.FindAll(e => e.IsActiveTarget()); if (freeEnemies.Count == 0) return; EnemyCombat enemy = freeEnemies[Random.Range(0, freeEnemies.Count)]; // выбираем случайного пиратa из команды (имитация стрельбы) List activePirates = pirateTeam.pirates; if (activePirates.Count == 0) return; Pirate targetPirate = activePirates[Random.Range(0, activePirates.Count)]; // даем врагу цель enemy.SetTarget(targetPirate.transform); } public void ClearAllTargets() { foreach (var enemy in enemies) { enemy.SetTarget(null); } } }