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; } }
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); }
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; }
public virtual void Activate() { MelonLogger.Msg(type.ToString() + " activated"); defaultParams.active = true; ModStatusHandler.RequestStatusDisplays(type, defaultParams.name, defaultParams.duration.ToString(), defaultParams.user, defaultParams.color); }
private static void Postfix(AudioDriver __instance) { ModStatusHandler.ShowEnabledString(); MelonCoroutines.Start(ModifierManager.ProcessQueueDelayed()); }