Skip to content
Snippets Groups Projects
PetHealth.cs 1.76 KiB
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PetHealth : MonoBehaviour
{
    public int startingHealth = 100;
    public int currentHealth;
    public Slider healthSlider;
    public AudioClip deathClip;

    Animator anim;
    AudioSource petAudio;
    CanvasElementsManager canvasManager;
    bool isDead;                                                
    bool damaged;                                        

    void Awake()
    {
        anim = GetComponent<Animator>();
        petAudio = GetComponent<AudioSource>();

        GameObject hudCanvas = GameObject.Find("HUDCanvas");
        canvasManager = hudCanvas.GetComponent<CanvasElementsManager>();

        currentHealth = startingHealth;
    }

    void Start()
    {
        canvasManager.setPetUIDisplayed(true);
    }

    void Update()
    {
        damaged = false;
    }


    public void TakeDamage(int amount)
    {
        damaged = true;

        currentHealth -= amount;

        healthSlider.value = currentHealth;

        Debug.Log($"Pet Damaged, currentHealth = {currentHealth}");

        petAudio.Play();

        if (currentHealth <= 0 && !isDead)
        {
            Death();
        }
    }

    void Death()
    {
        isDead = true;

        petAudio.clip = deathClip;
        petAudio.Play();

        GameObject pet = GameObject.FindGameObjectWithTag("Pet");
        Destroy(pet);

        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        if(enemies.Length > 0)
        {
            foreach(var enemy in enemies)
            {
                EnemyMovement enemyMovement = enemy.GetComponent<EnemyMovement>();
                enemyMovement.petExist = false;
            }
        }
        canvasManager.setPetUIDisplayed(false);
    }
}