/// <summary> /// Collision trigger enter /// </summary> /// <param name="other">Other</param> void OnTriggerEnter(Collider other) { HealthComponent health = other.gameObject.GetComponent <HealthComponent>(); if (health != null) { float damageTaken = health.TakeDamage(DamageAmount.Value); // DamageEvent.Invoke(); if (other.gameObject.CompareTag("Player") && damageTaken > 0f) { EventPlayerDamage damageEvent = new EventPlayerDamage() { health = health.HP.Value, maxHealth = health.StartingHP }; EventManager.TriggerEvent("Player.Hurt", damageEvent); } } }
/// <summary> /// Raises the player hurt event. /// </summary> /// <param name="eventParam">Event parameter.</param> void OnPlayerHurt(IEventParam eventParam) { EventPlayerDamage playerDamage = (EventPlayerDamage)eventParam; healthBar.fillAmount = playerDamage.health / playerDamage.maxHealth; }