void OnTriggerEnter(Collider c) { if (!m_active || !m_damage_on_enter) { return; } GEntity target = c.gameObject.GetComponent <GEntity>(); if (target != null && (target.m_team_id != m_owner.m_team_id || friendly_fire)) { target.Damage(m_damage); } //Destroy on collision with anything but the owner, if destroy_on_enter. if (m_destroy_on_enter && (target == null || target != m_owner)) { if (m_hit_particle) { Instantiate(m_hit_particle, transform.position, Quaternion.identity); } Destroy(gameObject); } }
void OnTriggerExit(Collider c) { if (!m_active || !m_damage_on_exit) { return; } GEntity target = c.GetComponent <GEntity>(); if (target != null && (target.m_team_id != m_owner.m_team_id || friendly_fire)) { target.Damage(m_damage); } }
void OnTriggerStay(Collider c) { if (!m_active || !m_damage_on_stay || !m_stay_damage_begin_timer.IsComplete() || !m_stay_damage_repeat_timer.IsComplete() ) { return; } GEntity target = c.GetComponent <GEntity>(); if (target != null && (target.m_team_id != m_owner.m_team_id || friendly_fire)) { target.Damage(m_damage); } }