private void DealRadialDamage(AbilityUseParams useParams) { // Static sphere cast for targets RaycastHit[] hits = Physics.SphereCastAll( transform.position, config.GetRadius(), Vector3.up, config.GetRadius() ); foreach (RaycastHit hit in hits) { var damageable = hit.collider.gameObject.GetComponent <IDamageable>(); bool hitPlayer = hit.collider.gameObject.GetComponent <Player>(); if (damageable != null && !hitPlayer) { float damageToDeal = useParams.baseDamage + config.GetDamageToEachTarget(); // TODO ok Rick? damageable.TakeDamage(damageToDeal); } } }
public void Use(AbilityUseParams useParams) { print("Area Effect used by " + gameObject.name); // Static sphere cast for targets RaycastHit[] hits = Physics.SphereCastAll( transform.position, config.GetRadius(), Vector3.up, config.GetRadius() ); foreach (RaycastHit hit in hits) { var damageable = hit.collider.gameObject.GetComponent <IDamageable>(); if (damageable != null) { float damageToDeal = useParams.baseDamage + config.GetDamageToEachTarget(); // TODO ok Rick? damageable.TakeDamage(damageToDeal); } } }