Esempio n. 1
0
 public virtual void TakeDamage(int damage)
 {
     HP -= damage;
     if (HP <= 0)
     {
         OnDeath?.Invoke(this);
         Destroy(gameObject);
         Instantiate(Upgrade.GetRandomUpgradePrefab(), transform.position, Quaternion.Euler(0, 0, 0));
     }
     spriteRenderer.color = Color.red;
     StartCoroutine(TakeDamageEffect.DamageEffect(spriteRenderer));
 }
Esempio n. 2
0
    public void TakeDamage(int damage)
    {
        if (GameSession.Instance.sessionData.VesselHP <= 1)
        {
            _ui.EnableDeathOverlay();
            EffectManager.mediumExplosion?.Invoke(transform.position);

            //Do not delete debug files even if death occurs
            if (!GameSession.Instance.sessionData.IsDebugMode)
            {
                GameSession.DeleteCurrentVessel();
            }
            Destroy(gameObject);
            return;
        }
        GameSession.Instance.sessionData.VesselHP -= damage;
        _spriteRenderer.color = Color.red;
        StartCoroutine(TakeDamageEffect.DamageEffect(_spriteRenderer));
    }