public void ActivatePowerup(PowerupInfo powerupInfo)
    {
        _powerupTimer  = powerupInfo.duration;
        _activePowerup = powerupInfo.powerupType;

        switch (_activePowerup)
        {
        case PowerupInfo.Type.FasterReload:
            for (int i = 0; i < _cannonballSpawners.Length; i++)
            {
                _cannonballSpawners[i].ChangeCooldown(powerupInfo.reloadTimeFactor);
            }

            _bombSpawner.ChangeCooldown(powerupInfo.reloadTimeFactor);
            break;

        case PowerupInfo.Type.DamageBoost:
            for (int i = 0; i < _cannonballSpawners.Length; i++)
            {
                _cannonballSpawners[i].ChangeDamage(powerupInfo.damageBoostFactor);
            }

            _bombSpawner.ChangeDamage(powerupInfo.reloadTimeFactor);
            break;

        case PowerupInfo.Type.MovementSpeedBoost:
            _shipMovement.ChangeMaxSpeed(powerupInfo.movementSpeedBoostFactor);
            break;

        case PowerupInfo.Type.TemporaryBonusHP:
            _healthScript.AddTempHP(powerupInfo.bonusHP);
            break;

        case PowerupInfo.Type.AutoHPRegen:
            _healthScript.ApplyRegeneration(powerupInfo.duration, powerupInfo.regenerationAmountPerSec);
            break;

        default:
            break;
        }
    }