AsteroidGame/Assets/Entities/Enemy/EnemyHealth.cs

64 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using AsteroidGame.Entities.Structures.Tower;
using UnityEngine;
public class EnemyHealth : MonoBehaviour
{
[Header("Assigned on start")]
[SerializeField] EnemyHandler enemyHandler;
[SerializeField] ScoreHandler scoreHandler;
[Header("Parameters")]
[SerializeField] int maxHealth = 5;
[SerializeField] int difficultyRamp = 1;
[SerializeField] int wealthValue = 5;
[Header("Stats")]
[SerializeField] int currentHealth;
#region Public
public int Health { get=> currentHealth;}
#endregion
void OnEnable()
{
enemyHandler = FindObjectOfType<EnemyHandler>();
scoreHandler = FindObjectOfType<ScoreHandler>();
currentHealth = maxHealth;
}
private void OnParticleCollision(GameObject damager)
{
ProcessHitFrom(damager);
}
private void ProcessHitFrom(GameObject damager)
{
// SpawnFX(damageVFX);
// Debug.Log(damager.GetComponentInParent<Tower>().GetDamage());
currentHealth -= damager.GetComponentInParent<Turret>().Damage;
//UpdateHealthText(health);
if(currentHealth <= 0)
{
ProcessDeathFrom(damager);
}
}
private void ProcessDeathFrom(GameObject damager)
{
damager.GetComponentInParent<Turret>().UpdateScore(1f);
// SpawnFX(deathFX);
scoreHandler.ModifyWealth(wealthValue);
enemyHandler.RemoveEnemy(gameObject);
// Destroy(gameObject);
gameObject.SetActive(false);
maxHealth += difficultyRamp;
}
}