public void HandleEnemyBulletCollisions(EnemyBullet bullet)
        {
            HashSet <Component> collidedBullets = GetObjectsCollided(bullet, typeof(EnemyBullet));
            HashSet <Component> collidedEnemies = GetObjectsCollided(bullet, typeof(Enemy));

            if (Player.Instance.BoundsContains(bullet) || bullet.BoundsContains(Player.Instance))
            {
                Player.Instance.TakeDamage(bullet.Damage);
                bullet.IsDead = true;
            }

            // see if deflected bullet hits enemy bullet
            foreach (EnemyBullet go in collidedBullets)
            {
                if (bullet.IsDead)
                {
                    break;
                }
                else if (go.IsDead || go == bullet)
                {
                    continue;
                }
                if (bullet.Movement.Deflected)
                {
                    HandleBulletCollision(bullet, go);
                }
            }
            // see if deflected enemy bullet hits an enemy
            foreach (Enemy go in collidedEnemies)
            {
                if (bullet.IsDead)
                {
                    break;
                }
                else if (go.IsDead)
                {
                    continue;
                }
                if (bullet.Movement.Deflected)
                {
                    go.TakeDamage(bullet.Damage);
                    bullet.IsDead = true;
                }
            }

            if (bullet.IsDead)
            {
                Remove(bullet);
            }
        }