private void OnCollisionEnter(Collision collision)
    {
        WeaponHolder componentWeaponHolder = collision.gameObject.GetComponent <WeaponHolder>();

        if (null != componentWeaponHolder)
        {
            //
            // Show correct weapon in body
            bool bCanSwitch = componentWeaponHolder.SetWeaponTypeToSwitchTo(_Weapon.WeaponType, gameObject.GetComponent <WeaponShot>().loaderSize);

            //
            // Destroy current weapon
            if (bCanSwitch)
            {
                Destroy(gameObject);

                //
                // Play the pick sound
                AudioManager.GetInstance().PlaySoundEffect(m_pickSound, 1.0f);
            }
            else
            {
                float fSpeed = gameObject.GetComponent <Rigidbody>().velocity.magnitude;
                if (fSpeed >= 5.0f)
                {
                    PlayerGameplay player = collision.gameObject.GetComponent <PlayerGameplay>();
                    Vector3        dir    = collision.contacts[0].point - transform.position;
                    player.TakeDamages(30.0f, dir, 1.3f);
                }
            }
        }
    }
Exemple #2
0
    private void OnTriggerEnter(Collider other)
    {
        PlayerGameplay player = other.gameObject.GetComponent <PlayerGameplay>();

        if (null != player && other.gameObject != transform.parent.gameObject)
        {
            Vector3 dir = player.transform.position - transform.position;
            player.TakeDamages(damages, dir, ejectionFactor);
        }
    }
    void OnCollisionEnter(Collision collision)
    {
        PlayerGameplay player = collision.gameObject.GetComponent <PlayerGameplay>();

        if (null != player)
        {
            Vector3 dir = collision.contacts[0].point - transform.position;
            player.TakeDamages(damages, dir, ejectionFactor);
        }
    }
    void OnCollisionEnter(Collision collision)
    {
        if (IsRocket)
        {
            TriggerHitEffect();
        }
        else
        {
            PlayerGameplay player = collision.gameObject.GetComponent <PlayerGameplay>();
            if (null != player)
            {
                // Collision orientation
                Vector3 dir = collision.contacts[0].point - transform.position;
                // Opposite
                dir = -dir.normalized;
                player.TakeDamages(Damages, dir, EjectionFactor);
                TriggerHitEffect();
            }
        }

        Destroy(gameObject);
    }