private IEnumerator GradientRoutine(MapEvent gradientEvent, LightsManager group) { MapEvent.ChromaGradient gradient = gradientEvent._lightGradient; Func <float, float> easingFunc = Easing.byName[gradient.EasingType]; float progress = 0; while ((progress = (atsc.CurrentBeat - gradientEvent._time) / gradient.Duration) < 1) { Color lerped = Color.LerpUnclamped(gradient.StartColor, gradient.EndColor, easingFunc(progress)); if (!SoloAnEventType || gradientEvent._type == SoloEventType) { ChromaCustomColors[group] = lerped; group.ChangeColor(lerped.WithAlpha(1), 0, group.ControllingLights); group.ChangeMultiplierAlpha(lerped.a, group.ControllingLights); } yield return(new WaitForEndOfFrame()); } ChromaCustomColors[group] = gradient.EndColor; group.ChangeColor(ChromaCustomColors[group].WithAlpha(1), 0, group.ControllingLights); group.ChangeMultiplierAlpha(ChromaCustomColors[group].a, group.ControllingLights); }