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