using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine.EventSystems;

public class FailedPanelController : PanelController, IPointerClickHandler
{
    [SerializeField] private CanvasGroup failedPanel;
    [SerializeField] private Image failedPanelArmImage;
    [SerializeField] private Image failedTextImage;
    [SerializeField] private Image failedPanelBGImage;
    
    public Action onCompleted;

    public void Show(Action onCompleted)
    {
        base.Show();
        this.onCompleted = onCompleted;
        Init();
    }
    
    private void Init()
    {
        failedPanelBGImage.DOFade(0, 0);
        failedTextImage.DOFade(0, 0);
        failedTextImage.rectTransform.DOScale(0, 0);
        failedPanel.DOFade(0, 0);
        FailedAnimation();
    }

    private void FailedAnimation()
    {
        Sequence seq = DOTween.Sequence();
        seq.Append(failedPanelBGImage.DOFade(0.98f, 0.5f))
            .Append(failedPanel.DOFade(1, 0.5f))
            .Append(failedPanelArmImage.rectTransform.DORotate(new Vector3(0, 0, 15), 0.3f))
            .Append(failedPanelArmImage.rectTransform.DORotate(Vector3.zero, 0.3f))
            .Join(failedTextImage.rectTransform.DOScale(1f, 0.5f).SetEase(Ease.OutBack))
            .Join(failedTextImage.DOFade(1, 0.5f));
    }

    public void OnPointerClick(PointerEventData eventData)
    {
        onCompleted?.Invoke();
        Hide();
    }
}