Beispiel #1
0
 public virtual void Deactivate()
 {
     if (!defaultParams.active)
     {
         MelonLogger.Msg(type.ToString() + " cancelled");
         return;
     }
     MelonLogger.Msg(type.ToString() + " deactivated");
     defaultParams.active = false;
     ModStatusHandler.RemoveStatusDisplays(type, ModStatusHandler.UpdateType.Ingame);
     ModStatusHandler.UpdateStatusDisplays(type, defaultParams.name, defaultParams.cooldown.ToString(), defaultParams.user, defaultParams.color, ModStatusHandler.UpdateType.ScoreOverlay);
     ModifierManager.ProcessQueue();
     MelonCoroutines.Start(CooldownTimer(defaultParams.cooldown));
     if (ModifierManager.nukeActive)
     {
         foreach (Modifier mod in ModifierManager.activeModifiers)
         {
             if (mod.defaultParams.active)
             {
                 return;
             }
         }
         ModifierManager.nukeActive = false;
     }
 }
Beispiel #2
0
 protected IEnumerator CooldownTimer(float cooldownTimer)
 {
     while (cooldownTimer > 0)
     {
         ModStatusHandler.UpdateStatusDisplays(type, defaultParams.name, cooldownTimer.ToString(), defaultParams.user, defaultParams.color, ModStatusHandler.UpdateType.ScoreOverlay);
         if (ModifierManager.stopAllModifiers)
         {
             yield break;
         }
         if (!InGameUI.I.pauseScreen.IsPaused())
         {
             cooldownTimer--;
         }
         yield return(new WaitForSecondsRealtime(1f));
     }
     ModStatusHandler.RemoveStatusDisplays(type, ModStatusHandler.UpdateType.ScoreOverlay);
     ModifierManager.RemoveActiveModifier(this);
 }
Beispiel #3
0
 protected IEnumerator ActiveTimer()
 {
     while (defaultParams.duration > 0)
     {
         if (ModifierManager.stopAllModifiers)
         {
             yield break;
         }
         ModStatusHandler.UpdateStatusDisplays(type, defaultParams.name, defaultParams.duration.ToString(), defaultParams.user, defaultParams.color, ModStatusHandler.UpdateType.All);
         if (!InGameUI.I.pauseScreen.IsPaused())
         {
             defaultParams.duration--;
         }
         yield return(new WaitForSecondsRealtime(1f));
     }
     Deactivate();
     yield return(null);
 }
        public static IEnumerator NukeReset(bool _nukeActive)
        {
            nukeActive       = _nukeActive;
            stopAllModifiers = true;
            ModStatusHandler.RemoveAllDisplays();
            yield return(new WaitForSecondsRealtime(1.5f));

            for (int i = activeModifiers.Count - 1; i > -1; i--)
            {
                if (activeModifiers[i].type == ModifierType.Nuke)
                {
                    continue;
                }
                activeModifiers[i].Deactivate();
            }
            timerActive      = false;
            stopAllModifiers = false;
            activeModifiers.Clear();
        }
        public static IEnumerator Reset()
        {
            stopAllModifiers = true;
            yield return(new WaitForSecondsRealtime(1.5f));

            ModStatusHandler.RemoveAllDisplays();
            for (int i = activeModifiers.Count - 1; i > -1; i--)
            {
                activeModifiers[i].Deactivate();
            }
            timerActive            = false;
            stopAllModifiers       = false;
            invalidateScore        = false;
            originalArenaValuesSet = false;
            activeModifiers.Clear();
            if (requireRotationReset)
            {
                RenderSettings.skybox.SetFloat("_Rotation", userRotation);
                requireRotationReset = false;
            }
            Hooks.updateChainColor = false;
        }
Beispiel #6
0
 public virtual void Activate()
 {
     MelonLogger.Msg(type.ToString() + " activated");
     defaultParams.active = true;
     ModStatusHandler.RequestStatusDisplays(type, defaultParams.name, defaultParams.duration.ToString(), defaultParams.user, defaultParams.color);
 }
Beispiel #7
0
 private static void Postfix(AudioDriver __instance)
 {
     ModStatusHandler.ShowEnabledString();
     MelonCoroutines.Start(ModifierManager.ProcessQueueDelayed());
 }