/*
 * Author: Wai Lam
 * Date: 13/2/2025
 * Description: Counting days
 */

using System;
using System.Collections;
using TMPro;
using UnityEngine;

public class CanvasFade : MonoBehaviour
{
    public CanvasGroup dayPanel; // Assign the UI Panel
    public TextMeshProUGUI dayText; // Assign the TextMeshPro UI

    private void Start()
    {
        if (GameManager.Instance != null)
        {
            var dayNumber = GameManager.Instance.CurrentDay;
            dayText.text = "Day " + dayNumber;
        }

        StartCoroutine(FadeOutPanel());
    }

    public static event Action OnDayPanelHidden;

    private IEnumerator FadeOutPanel()
    {
        dayPanel.alpha = 1f;
        dayPanel.gameObject.SetActive(true);

        yield return new WaitForSeconds(3f); // Display for 3 seconds

        const float fadeDuration = 1.5f;
        var elapsedTime = 0f;

        while (elapsedTime < fadeDuration)
        {
            elapsedTime += Time.deltaTime;
            dayPanel.alpha = Mathf.Lerp(1f, 0f, elapsedTime / fadeDuration);
            yield return null;
        }

        dayPanel.gameObject.SetActive(false);

        OnDayPanelHidden?.Invoke();
    }
}