using UnityEngine;
using UnityEngine.UI;
using static GlobalSettings;

public class ImageHintAnimation : MonoBehaviour
{
    public Image imageToChange;
    private Color imageToChangeDefaultColor;

    private Color animationStartColor;
    private Color animationEndColor;
    
    private float animateDuration;
    private bool animating = false;
    private float timer = 0;

    // Start is called before the first frame update
    void Start()
    {
        if (imageToChange != null)
            imageToChangeDefaultColor = imageToChange.color;

        animationStartColor = globalSettings.hintAnimationStartColor;
        animationEndColor = globalSettings.hintAnimationEndColor;
        animateDuration = globalSettings.hintAnimationDuration;
    }

    // Update is called once per frame
    void Update()
    {
        if (animating)
        {
            this.timer += Time.deltaTime;
            Animate();
        }
    }

    public void AnimationTrigger()
    {
        if (imageToChange != null)
            animating = true;
    }

    private void Animate()
    {
        if (timer >= animateDuration)
        {
            animating = false;
            timer = 0;
            imageToChange.color = imageToChangeDefaultColor;
        }
        else
        {
            imageToChange.color = Color.Lerp(animationStartColor, animationEndColor, Mathf.PingPong(Time.time, 1));
        }

    }
}