64 lines
1.7 KiB
C#
64 lines
1.7 KiB
C#
using UnityEngine;
|
|
|
|
namespace AsteroidGame.Entities.Enemies.Scripts
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
}
|