using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class PlayerHealthController : MonoBehaviour
{
    public static PlayerHealthController instance;

    private void Awake()
    {
        instance = this;
    }

    //[HideInInspector]
    public int currentHealth;
    public int maxHealth;

    public float invincibilityLength;
    private float invincCounter;

    public float flashLength;
    private float flashCounter;

    public SpriteRenderer playerSprite;

    // Start is called before the first frame update
    void Start()
    {
        currentHealth = maxHealth;

        UIController.instance.UpdateHealth(currentHealth, maxHealth);
    }

    // Update is called once per frame
    void Update()
    {
        if(invincCounter > 0)
        {
            invincCounter -= Time.deltaTime;

            flashCounter -= Time.deltaTime;
            if(flashCounter <= 0)
            {
                playerSprite.enabled = !playerSprite.enabled;

                flashCounter = flashLength;
            }

            if(invincCounter <= 0)
            {
                playerSprite.enabled = true;
            }

            flashCounter = 0;

            
        }

        
    }

    public void DamagePlayer(int damageAmount)
    {
        if(invincCounter <= 0)
        {
            currentHealth -= damageAmount;

            if (currentHealth <= 0)
            {
                currentHealth = 0;

                SceneManager.LoadScene(0);
            }

            else

            {
                invincCounter = invincibilityLength;
            }

            UIController.instance.UpdateHealth(currentHealth, maxHealth);
        }

    }
}
