Exemple #1
0
        private void OnProjectileHit(IGameObject gameObject, IGameObject projectile)
        {
            gameObject.AddHealth(-projectile.GetHealth());

            if (gameObject.GetHealth() <= 0)
            {
                // Explode game object
                // TODO: Split asteroid into smaller when it is bigger than some threshold?
                DestroyObject(gameObject);
                OnAsteroidShot(gameObject);
            }
            else
            {
                // Slow down game object
                var healthRatio     = projectile.GetHealth() / 3000;
                var projectileSpeed = projectile.GetComponent <LinearMovementComponent>();
                var objSpeed        = gameObject.GetComponent <LinearMovementComponent>();
                objSpeed.YSpeed += projectileSpeed.YSpeed * healthRatio;
                objSpeed.XSpeed += projectileSpeed.XSpeed * healthRatio;
            }

            projectile.SetSpeed(0, 0);
            DestroyObject(projectile);
        }