protected override void ExecuteSpecialB()
    {
        TimeBubbleLimits tbl = ClonePlayerTBL();

        tbl.minTimeScaleMultiplier *= timeScaleMultiplier;
        tbl.maxTimeScaleMultiplier *= timeScaleMultiplier;
        StartCoroutine(PopAtPeak(TimeBubbleSpawner.Spawn(transform.position + MathLib.FromPolar(Player.Radius + TimeBubbleSpawner.Radius, Player.TurretAngle).ToVector3(), isSlowBubble, Player.TurretAngle, Player.shotSpeed, 2, tbl)));
    }
    private TimeBubbleLimits ClonePlayerTBL()
    {
        TimeBubbleLimits tbl = new TimeBubbleLimits();

        tbl.sweetSpotAge             = Player.timeBubbleLimits.sweetSpotAge;
        tbl.sweetSpotSensitivity     = Player.timeBubbleLimits.sweetSpotSensitivity;
        tbl.minRadius                = Player.timeBubbleLimits.minRadius;
        tbl.maxRadius                = Player.timeBubbleLimits.maxRadius;
        tbl.minLifeSpan              = Player.timeBubbleLimits.minLifeSpan;
        tbl.maxLifeSpan              = Player.timeBubbleLimits.maxLifeSpan;
        tbl.minInnerRadiusPercentage = Player.timeBubbleLimits.minInnerRadiusPercentage;
        tbl.maxInnerRadiusPercentage = Player.timeBubbleLimits.maxInnerRadiusPercentage;
        tbl.minTimeScaleMultiplier   = Player.timeBubbleLimits.minTimeScaleMultiplier;
        tbl.maxTimeScaleMultiplier   = Player.timeBubbleLimits.maxTimeScaleMultiplier;
        return(tbl);
    }
    public static TimeBubbleSpawner Spawn(Vector3 position, bool isSlowBubble, float angle, float speed, float lifeTime, TimeBubbleLimits limits)
    {
        CheckLoadPrefab();

        TimeBubbleSpawner output = Instantiate(prefabSpawner, position, Quaternion.Euler(0, 0, angle)) as TimeBubbleSpawner;

        output.speed        = speed;
        output.angle        = angle;
        output.isSlowBubble = isSlowBubble;
        output.lifeTime     = lifeTime;
        output.limits       = limits;
        return(output);
    }