protected override void Shoot(TargetPoint target)
    {
        base.Shoot(target);

        ProjectileBase projectile = pool.Get();

        projectile.gameObject.SetActive(true);
        projectile.FireBullet(this, target, projectileSpeed);

        EventHandler handler = null;

        handler = (sender, e) =>
        {
            pool.ReturnToPool(projectile);
            projectile.ReturnToPool -= handler;
        };
        projectile.ReturnToPool += handler;
    }