コード例 #1
0
ファイル: Main.cs プロジェクト: Contiinuum/AutoLightshow
        private static async Task PrepareFade(float targetExposure)
        {
            float oldExposure   = RenderSettings.skybox.GetFloat("_Exposure");
            float oldReflection = RenderSettings.reflectionIntensity;


            while (!AudioDriver.I.IsPlaying())
            {
                await Task.Delay(20);
            }
            ArenaLoaderMod.CurrentSkyboxExposure = oldExposure;
            float startTick  = AudioDriver.I.mCachedTick;
            float _endTick   = startTick + 480f;
            float percentage = 0f;

            while (percentage < 100f)
            {
                percentage = ((AudioDriver.I.mCachedTick - startTick) * 100f) / (_endTick - startTick);
                float currentExp = Mathf.Lerp(oldExposure, targetExposure, percentage / 100f);
                float currentRef = Mathf.Lerp(oldReflection, targetExposure, percentage / 100f);
                RenderSettings.skybox.SetFloat("_Exposure", currentExp);
                ArenaLoaderMod.CurrentSkyboxReflection = 0f;
                ArenaLoaderMod.ChangeReflectionStrength(currentRef);
                ArenaLoaderMod.CurrentSkyboxExposure = currentExp;
                await Task.Delay(20);
            }
            await Task.CompletedTask;
        }
コード例 #2
0
        private IEnumerator DoStutter()
        {
            while (defaultParams.active && stutters.Count > 0)
            {
                KeyValuePair <float, int> stutter = stutters.First();
                float neutralDir = 1f;
                if (AudioDriver.I.mCachedTick > stutter.Key)
                {
                    float rot;
                    if (stutter.Value == 0f)
                    {
                        rot = amount * neutralDir;
                        //neutralDir *= -1f;
                    }
                    else
                    {
                        rot = amount * (float)stutter.Value;
                    }

                    ArenaLoaderMod.RotateSkybox(rot);
                    stutters.Remove(stutter.Key);
                }
                yield return(new WaitForSecondsRealtime(.01f));
            }
        }
コード例 #3
0
ファイル: BopMode.cs プロジェクト: Contiinuum/TwitchModifiers
        private IEnumerator Bop()
        {
            float oldExposure = RenderSettings.skybox.GetFloat("_Exposure");

            ArenaLoaderMod.CurrentSkyboxExposure = oldExposure;
            List <SongCues.Cue> cues = SongCues.I.mCues.cues.ToList();

            for (int i = cues.Count - 1; i >= 0; i--)
            {
                if (cues[i].tick < AudioDriver.I.mCachedTick || cues[i].behavior == Target.TargetBehavior.Dodge)
                {
                    cues.RemoveAt(i);
                }
            }
            ExposureState state = ExposureState.Light;

            while (defaultParams.active)
            {
                if (cues[0].tick <= AudioDriver.I.mCachedTick)
                {
                    if (cues[0].behavior != Target.TargetBehavior.Chain && cues[0].behavior != Target.TargetBehavior.ChainStart && cues[0].velocity == 2)
                    {
                        cues.RemoveAt(0);
                        continue;
                    }
                    if (cues[0].nextCue.tick == cues[0].tick)
                    {
                        if (cues[0].behavior == Target.TargetBehavior.Melee)
                        {
                            cues.RemoveAt(1);
                        }
                        else
                        {
                            cues.RemoveAt(0);
                        }
                    }
                    MelonCoroutines.Stop(fadeToken);
                    float diff    = cues[0].nextCue.tick - cues[0].tick;
                    float end     = cues[0].nextCue.tick - (diff / 4f);
                    bool  isLight = state == ExposureState.Light;
                    float target  = isLight ? 0f : (ModifierManager.originalExposure / 100f) * 80f;
                    if (diff >= 120f && cues[0].behavior != Target.TargetBehavior.Melee)
                    {
                        fadeToken = MelonCoroutines.Start(Fade(end, target));
                    }
                    else
                    {
                        RenderSettings.skybox.SetFloat("_Exposure", target);
                        RenderSettings.reflectionIntensity     = target;
                        ArenaLoaderMod.CurrentSkyboxReflection = 0f;
                        ArenaLoaderMod.ChangeReflectionStrength(target);
                    }
                    state = isLight ? ExposureState.Dark : ExposureState.Light;
                    cues.RemoveAt(0);
                }
                yield return(new WaitForSecondsRealtime(.01f));
            }
            yield return(null);
        }
コード例 #4
0
ファイル: Main.cs プロジェクト: Contiinuum/AutoLightshow
 private static void ResetArenaValues()
 {
     if (!Integrations.arenaLoaderFound || !Config.enabled)
     {
         return;
     }
     RenderSettings.skybox.SetFloat("_Exposure", userArenaBrightness);
     ArenaLoaderMod.CurrentSkyboxExposure   = userArenaBrightness;
     ArenaLoaderMod.CurrentSkyboxReflection = userArenaReflection;
     ArenaLoaderMod.ChangeReflectionStrength(userArenaReflection);
 }
コード例 #5
0
ファイル: Main.cs プロジェクト: Contiinuum/AutoLightshow
 private static IEnumerator FadeToBlack()
 {
     ArenaLoaderMod.CurrentSkyboxExposure = fadeToBlackExposure;
     while (active)
     {
         float percentage = ((AudioDriver.I.mCachedTick - fadeToBlackStartTick) * 100f) / (fadeToBlackEndTick - fadeToBlackStartTick);
         if (percentage >= 0)
         {
             float currentExp = Mathf.Lerp(fadeToBlackExposure, 0f, percentage / 100f);
             float currentRef = Mathf.Lerp(fadeToBlackReflection, .5f, percentage / 100f);
             RenderSettings.skybox.SetFloat("_Exposure", currentExp);
             ArenaLoaderMod.CurrentSkyboxReflection = 0f;
             ArenaLoaderMod.ChangeReflectionStrength(currentRef);
             ArenaLoaderMod.CurrentSkyboxExposure = currentExp;
         }
         yield return(new WaitForSecondsRealtime(.01f));
     }
 }
コード例 #6
0
ファイル: BopMode.cs プロジェクト: Contiinuum/TwitchModifiers
        private IEnumerator Fade(float endTick, float targetExposure)
        {
            float oldExposure   = RenderSettings.skybox.GetFloat("_Exposure");
            float oldReflection = RenderSettings.reflectionIntensity;

            ArenaLoaderMod.CurrentSkyboxExposure = oldExposure;
            float startTick = AudioDriver.I.mCachedTick;

            while (true)
            {
                float percentage = ((AudioDriver.I.mCachedTick - startTick) * 100f) / (endTick - startTick);
                float currentExp = Mathf.Lerp(oldExposure, targetExposure, percentage / 100f);
                float currentRef = Mathf.Lerp(oldReflection, targetExposure, percentage / 100f);
                RenderSettings.skybox.SetFloat("_Exposure", currentExp);
                ArenaLoaderMod.CurrentSkyboxReflection = 0f;
                ArenaLoaderMod.ChangeReflectionStrength(currentRef);
                ArenaLoaderMod.CurrentSkyboxExposure = currentExp;
                yield return(new WaitForSecondsRealtime(.01f));
            }
        }