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)); }
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)); }