using System; using System.Collections.Generic; using Meta; using Player; using Unity.Collections; using UnityEngine; using Utils; namespace Ai { public class AiController : MonoSingleton { [ReadOnly] public readonly List TargetingEnemies = new List(); public MainCharacter Player { get; set; } public event Action StageCompletedEvent; public event Action EnemyDiedEvent; public Vector3 PlayerPosition { get { return Player != null ? Player.transform.position : Vector3.zero; } } public void EnemyDied(Vector3 position) { if (EnemyDiedEvent != null) EnemyDiedEvent(position); if (TargetingEnemies.Count <= 0) { if (StageCompletedEvent != null) StageCompletedEvent(); PlayerResources.Instance.Repaint(); BulletManager.Instance.ShutDown(); } } public void Update() { foreach (var targetingEnemy in TargetingEnemies) { targetingEnemy.Proceed(Player.IsDead ? targetingEnemy.transform.position : PlayerPosition); if (Player.IsDead) continue; targetingEnemy.SetGuns(PlayerPosition); } } } }