using DG.Tweening;
using TMPro;
using UnityEngine;

namespace UNSLOW.EffectPractice.FirstTerm.DamageNumbers
{
    public class DamageNumberTween : MonoBehaviour
    {
        public TMP_Text text;
        public float lifeTime = 0.8f;
        public Vector2 move = new(0f, 80f);
        public bool destroyOnFinish = true;

        private RectTransform _rectTransform;
        private Vector2 _startPosition;

        private void Awake()
        {
            _rectTransform = GetComponent<RectTransform>();
            _startPosition = _rectTransform.anchoredPosition;
        }

        public void Setup(int value, Color color)
        {
            text.text = value.ToString();
            text.color = color;

            var sequence = DOTween.Sequence();
            sequence.Append(_rectTransform.DOScale(1.4f, 0.08f));
            sequence.Append(_rectTransform.DOScale(1f, 0.12f));
            sequence.Append(_rectTransform.DOAnchorPos(_startPosition + move, lifeTime).From(_startPosition));
            sequence.Insert(0.50f, text.DOFade(0f, lifeTime - 0.50f));
            
            if(destroyOnFinish)
                sequence.OnComplete(() => Destroy(gameObject));
        }
    }
}
