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);
}
}
}
}
}