using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.Events;

/// <summary>
/// Обрабатывает триггерную зону тайла и вызывает эвент
/// </summary>
public class TriggerZoneScript : MonoBehaviour
{
    /// <summary>
    /// делегат и эвент, который собирает подписи
    /// </summary>
    public UnityEvent TriggerZoneEvent = new UnityEvent();

    /// <summary>
    /// флаг реакции тригера
    /// </summary>
    [SerializeField]
    private bool _wasTrigged = false;
    public bool WasTrigged 
    { 
        get => _wasTrigged; 
        set => _wasTrigged = value; 
    }

    /// <summary>
    /// Реакция тригерной зоны на вхождение игрока
    /// </summary>
    /// <param name="other">объект тригера</param>
    private void OnTriggerEnter(Collider other)
    {
        // если тег игрока и первая реакция
        if (other.gameObject.CompareTag("Player") && !WasTrigged)
        {   

            // Debug.Log("Was trigged");

            // изменение, что тригер сработал
            WasTrigged = !WasTrigged;

            // вызов всех подписей
            TriggerZoneEvent.Invoke();
        }
    }

}

