Drum.OnCollisionEnter C# (CSharp) Method

OnCollisionEnter() private method

private OnCollisionEnter ( Collision, collision ) : void
collision Collision,
return void
    void OnCollisionEnter(Collision collision)
    {
        if (NetworkDirector.isMasterClient)
        {
            // Did we hit an enemy?
            if ((int)GameDirector.GameLayers.Enemy == collision.gameObject.layer)
            {
                EnemyCharacter enemyCharacter = collision.gameObject.GetComponent<EnemyCharacter>();
                if (null != enemyCharacter)
                {
                    IDamageTaker damageTaker = (IDamageTaker)enemyCharacter;
                    if (null != damageTaker)
                    {
                        // Yes, we definitely hit a valid enemy. Lets damage it.
                        damageTaker.TakeDamage(this);
                    }
                    else
                    {
                        // We should never get here
                    }
                }
                else
                {
                    // We should never get here
                }
            }
            // Are we falling onto a player with a significant vertical speed?
            else if ((int)GameDirector.GameLayers.PlayerCharacter == collision.gameObject.layer
                && myRigidbody.velocity.y < -1.0f)
            {
                PlayerCharacter playerCharacter = collision.gameObject.GetComponent<PlayerCharacter>();
                if (null != playerCharacter)
                {
                    IDamageTaker damageTaker = (IDamageTaker)playerCharacter;
                    if (null != damageTaker)
                    {
                        // Yes we are, lets damage them.
                        damageTaker.TakeDamage(this);
                    }
                }
            }
        }
    }