using UnityEngine;
namespace ActionGameFramework.Health
{
///
/// Damage trigger - a trigger based implementation of Damage zone
///
[RequireComponent(typeof(Collider))]
public class DamageTrigger : DamageZone
{
///
/// On entering the trigger see that the collider has a Damager component and if so make the damageableBehaviour take damage
///
/// The collider that entered the trigger
protected void OnTriggerEnter(Collider triggeredCollider)
{
var damager = triggeredCollider.GetComponent();
if (damager == null)
{
return;
}
LazyLoad();
float scaledDamage = ScaleDamage(damager.finalDamage);
Vector3 collisionPosition = triggeredCollider.ClosestPoint(damager.transform.position);
damageableBehaviour.TakeDamage(scaledDamage, collisionPosition, damager.alignmentProvider);
damager.HasDamaged(collisionPosition, damageableBehaviour.configuration.alignmentProvider);
}
}
}