private IEnumerator ZipMoverSequence()
        {
            Vector2 start = Position;

            while (true)
            {
                if (!HasPlayerRider())
                {
                    yield return(null);

                    continue;
                }
                sfx.Play((theme == Themes.Normal) ? "event:/game/01_forsaken_city/zip_mover" : "event:/new_content/game/10_farewell/zip_mover");
                Input.Rumble(RumbleStrength.Medium, RumbleLength.Short);
                StartShaking(0.1f);
                yield return(0.1f);

                streetlight.SetAnimationFrame(3);
                StopPlayerRunIntoAnimation = false;
                float at2 = 0f;
                while (at2 < 1f)
                {
                    yield return(null);

                    at2     = Calc.Approach(at2, 1f, 2f * Engine.DeltaTime);
                    percent = Ease.SineIn(at2);
                    Vector2 to = Vector2.Lerp(start, target, percent);
                    ScrapeParticlesCheck(to);
                    if (Scene.OnInterval(0.1f))
                    {
                        pathRenderer.CreateSparks();
                    }
                    MoveTo(to);
                }
                StartShaking(0.2f);
                Input.Rumble(RumbleStrength.Strong, RumbleLength.Medium);
                SceneAs <Level>().Shake();
                StopPlayerRunIntoAnimation = true;
                yield return(0.5f);

                StopPlayerRunIntoAnimation = false;
                streetlight.SetAnimationFrame(2);
                float at = 0f;
                while (at < 1f)
                {
                    yield return(null);

                    at      = Calc.Approach(at, 1f, 0.5f * Engine.DeltaTime);
                    percent = 1f - Ease.SineIn(at);
                    Vector2 to2 = Vector2.Lerp(target, start, Ease.SineIn(at));
                    MoveTo(to2);
                }
                StopPlayerRunIntoAnimation = true;
                StartShaking(0.2f);
                streetlight.SetAnimationFrame(1);
                yield return(0.5f);

                TrySwitchTroll();
                yield return(null);
            }
        }