Beispiel #1
0
 public override void TakeDamage(int damageAmount)
 {
     _audioPlayer.PlayAudioSource();
     _enemyAnimatorHandler.PlayDamagedAnimation();
     OnEnemyHit?.Invoke();
     base.TakeDamage(damageAmount);
 }
Beispiel #2
0
        public void TakeDamage(int damageTaken)
        {
            OnEnemyHit?.Invoke();
            wasHit = true;
            if (GetComponent <DamageEffect>() != null)
            {
                GetComponent <DamageEffect>().Activate();
            }

            // Display the amount of damage the player has dealt
            var damageNumberDisplay = Instantiate(damageNumberDisplayPrefab, transform.Find("Canvas"));

            // Randomly set the anchored X position
            var rectTransform = damageNumberDisplay.GetComponent <RectTransform>().anchoredPosition3D;

            rectTransform = new Vector3(Random.Range(rectTransform.x - 5f, rectTransform.x + 5f), 0f, 0f);
            damageNumberDisplay.GetComponent <RectTransform>().anchoredPosition3D = rectTransform;

            damageNumberDisplay.GetComponent <TextMeshProUGUI>().SetText($"-{damageTaken}"); // Update the damage text
            CurHp -= damageTaken;

            GameManager.Instance.playerUi.ToggleEnemyInfoPanel(true);
            GameManager.Instance.playerUi.UpdateEnemyInformationPanel(this);
            if (CurHp <= 0)
            {
                Die();
            }
        }
Beispiel #3
0
 public bool HitByEnemy(EnemyType enemyType)
 {
     if (movementType == MovementType.Run)
     {
         OnEnemyHit?.Invoke();
         return(true);
     }
     return(false);
 }
Beispiel #4
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Enemy"))
        {
            Enemy enemy = other.GetComponent <Enemy>();

            if (enemy.EnemyHealth.CurrentHealth > 0f)
            {
                OnEnemyHit?.Invoke(enemy, damage);
                enemy.EnemyHealth.DealDamage(damage);
            }

            ObjectPooler.ReturnToPool(gameObject);
        }
    }
Beispiel #5
0
 public void Hit(float damage)
 {
     OnEnemyHit.Invoke(damage);
 }
Beispiel #6
0
 public static void ReportEnemyHit()
 {
     OnEnemyHit?.Invoke();
     //Debug.Log("Enemy Hit Event");
 }
Beispiel #7
0
 public void OnEnemy()
 {
     OnEnemyHit?.Invoke();
 }