private void SwitchToNextMap() { if (nextSong == null || nextBeatmap == null || nextMapDiffInfo == null) { return; } if (BS_Utils.Plugin.LevelData.GameplayCoreSceneSetupData.playerSpecificSettings.environmentEffectsFilterDefaultPreset == EnvironmentEffectsFilterPreset.NoEffects) { nextBeatmap.SetField <BeatmapData, List <BeatmapEventData> >("_beatmapEventsData", new BeatmapEventData[0].ToList()); } AudioClip oldClip = GameObjects.songAudio.clip; TwitchPowers.ResetTimeSync(nextSong, 0f, nextSongInfo.songTimeOffset, 1f); TwitchPowers.ManuallySetNJSOffset(GameObjects.spawnController, nextMapDiffInfo.noteJumpMovementSpeed, nextMapDiffInfo.noteJumpStartBeatOffset, nextSongInfo.beatsPerMinute); // TwitchPowers.ClearCallbackItemDataList(callBackDataList); // DestroyNotes(); TwitchPowers.DestroyObjectsRaw(); TwitchPowers.ResetNoteCutSoundEffects(seManager); callbackController.SetField("_spawningStartTime", 0f); callbackController.SetNewBeatmapData(nextBeatmap); UpdatePauseMenu(); ClearSoundEffects(); //Destroying audio clip is actually bad idea // IPA.Utilities.Async.UnityMainThreadTaskScheduler.Factory.StartNew(() => { oldClip.UnloadAudioData(); AudioClip.Destroy(oldClip); }); Task.Run(PrepareNextSong); CheckIntroSkip(); ResetProgressUI(); }
public void CheckSpeedCommands(TwitchMessage message) { if (message.message.ToLower().Contains("!gm faster") && !Plugin.cooldowns.GetCooldown("Speed") && Plugin.commandsLeftForMessage > 0) { if (!Plugin.practicePluginInstalled) { Plugin.TryAsyncMessage("Speed altering commands currently require Practice Plugin to be installed"); return; } if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.fasterChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.songAudio.clip.length, ChatConfig.fasterMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Speed", "Fast Time!")); Plugin.trySuper = false; Plugin.charges -= ChatConfig.chargesForSuperCharge + ChatConfig.fasterChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.fasterChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(ChatConfig.fasterDuration, ChatConfig.fasterMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.fasterCooldown, "Speed", "Temporary faster song speed Active.")); Plugin.charges -= ChatConfig.fasterChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm slower") && !Plugin.cooldowns.GetCooldown("Speed") && Plugin.commandsLeftForMessage > 0) { if (!Plugin.practicePluginInstalled) { Plugin.TryAsyncMessage("Speed altering commands currently require Practice Plugin to be installed"); return; } if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.slowerChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.songAudio.clip.length, ChatConfig.slowerMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Speed", "Weakling Slower Song Time!")); Plugin.trySuper = false; Plugin.charges -= ChatConfig.chargesForSuperCharge + ChatConfig.slowerChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.slowerChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(ChatConfig.slowerDuration, ChatConfig.slowerMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.slowerCooldown, "Speed", "Temporary slower song speed Active.")); Plugin.charges -= ChatConfig.slowerChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } }
public void CheckStatusCommands(TwitchMessage message) { if (message.Author.IsBroadcaster || message.Author.IsMod) { if (message.Content.ToLower().Contains("!gm reset")) { Plugin.cooldowns.ResetCooldowns(); TwitchPowers.ResetPowers(true); Plugin.twitchPowers.StopAllCoroutines(); Plugin.charges = Plugin.Config.chargesPerLevel; TwitchConnection.Instance.SendChatMessage("Resetting non Permanent Powers"); } } if (message.Content.ToLower().Contains("!gm pp")) { if (Plugin.currentpp != 0) { TwitchConnection.Instance.SendChatMessage("Streamer Rank: #" + Plugin.currentRank + ". Streamer pp: " + Plugin.currentpp + "pp"); } else { TwitchConnection.Instance.SendChatMessage("Currently do not have streamer info"); } } if (message.Content.ToLower().Contains("!gm status")) { string scopeMessage = ""; int scope = CheckCommandScope(); switch (scope) { case 0: scopeMessage = "Everyone has access to commands"; break; case 1: scopeMessage = "Subscribers have access to commands"; break; case 2: scopeMessage = "Moderators have access to commands"; break; } Plugin.beepSound.Play(); if (GMPUI.chatIntegration) { TwitchConnection.Instance.SendChatMessage("Chat Integration Enabled. " + scopeMessage); } else { TwitchConnection.Instance.SendChatMessage("Chat Integration Not Enabled. " + scopeMessage); } } }
public void CheckGlobalCoolDown() { if (Plugin.Config.globalCommandCooldown > 0 && Plugin.cooldowns.GetCooldown("Global") == false && globalActive) { var text = GameObject.Find("Chat Powers").GetComponent <GamePlayModifiersPlus.TwitchStuff.GMPDisplay>().cooldownText; Plugin.twitchPowers.StartCoroutine(TwitchPowers.GlobalCoolDown()); text.text += " " + "Global" + " | "; } globalActive = false; }
public void CheckHealthCommands(TwitchMessage message) { if (!Plugin.cooldowns.GetCooldown("Health")) { if (message.Content.ToLower().Contains("!gm instafail")) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.instaFailChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempInstaFail(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Health", "Super Insta Fail Active.")); Plugin.trySuper = false; Plugin.healthActivated = true; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.instaFailChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.instaFailChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempInstaFail(Plugin.Config.instaFailDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.instaFailCooldown, "Health", "Insta Fail Active.")); Plugin.healthActivated = true; Plugin.charges -= Plugin.Config.instaFailChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm invincible") && !Plugin.healthActivated && !Plugin.cooldowns.GetCooldown("Health")) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.invincibleChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempInvincibility(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Health", "Super Invincibility Active.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.invincibleChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.invincibleChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempInvincibility(Plugin.Config.invincibleDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.invincibleCooldown, "Health", "Invincibility Active.")); Plugin.charges -= Plugin.Config.invincibleChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } } }
public void CheckPauseMessage(TwitchMessage message) { if (message.Content.ToLower().Contains("!gm pause") && Plugin.commandsLeftForMessage > 0) { if (Plugin.charges >= Plugin.Config.pauseChargeCost) { Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Pause()); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.pauseGlobalCooldown, "Global", "Game Paused :)")); Plugin.charges -= Plugin.Config.pauseChargeCost; Plugin.commandsLeftForMessage = 0; } } }
public void CheckSpeedCommands(TwitchMessage message) { if (message.Content.ToLower().Contains("!gm faster") && !Plugin.cooldowns.GetCooldown("Speed") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.fasterChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.songAudio.clip.length, Plugin.Config.fasterMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Speed", "Fast Time!")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.fasterChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.fasterChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.Config.fasterDuration, Plugin.Config.fasterMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.fasterCooldown, "Speed", "Temporary faster song speed Active.")); Plugin.charges -= Plugin.Config.fasterChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm slower") && !Plugin.cooldowns.GetCooldown("Speed") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.slowerChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.songAudio.clip.length, Plugin.Config.slowerMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Speed", "Weakling Slower Song Time!")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.slowerChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.slowerChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.SpeedChange(Plugin.Config.slowerDuration, Plugin.Config.slowerMultiplier)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.slowerCooldown, "Speed", "Temporary slower song speed Active.")); Plugin.charges -= Plugin.Config.slowerChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } }
public static void CheckGMPModifiers() { // Log($"badNote: {energyCounter.GetField("_badNoteEnergyDrain")}"); // Log($"missNote: {energyCounter.GetField("_missNoteEnergyDrain")}"); // Log($"goodNote: {energyCounter.GetField("_goodNoteEnergyCharge")}"); // Log($"obstaclePerSec: {energyCounter.GetField("_obstacleEnergyDrainPerSecond")}"); // Log($"hitBomb: {energyCounter.GetField("_hitBombEnergyDrain")}"); if (GMPUI.bulletTime || GMPUI.removeCrouchWalls || GMPUI.swapSabers || GMPUI.fiveLanes || GMPUI.angleShift || GMPUI.laneShift || GMPUI.sixLanes || GMPUI.fourLayers || GMPUI.reverse || GMPUI.chatIntegration || GMPUI.funky || GMPUI.oneColor || GMPUI.gnomeOnMiss || GMPUI.njsRandom || GMPUI.noArrows || GMPUI.randomSize || GMPUI.fixedNoteScale != 1f || GMPUI.offsetrandom) { // ApplyPatches(); UnityEngine.Random.InitState(Plugin.levelData.GameplayCoreSceneSetupData.difficultyBeatmap.beatmapData.notesCount); BS_Utils.Gameplay.ScoreSubmission.DisableSubmission("GameplayModifiersPlus"); if (GMPUI.njsRandom || GMPUI.offsetrandom) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.RandomNjsOrOffset()); } if (GMPUI.removeCrouchWalls) { if (levelData.GameplayCoreSceneSetupData.gameplayModifiers.enabledObstacleType != GameplayModifiers.EnabledObstacleType.NoObstacles) { levelData.GameplayCoreSceneSetupData.gameplayModifiers.enabledObstacleType = GameplayModifiers.EnabledObstacleType.FullHeightOnly; } } if (GMPUI.sixLanes || GMPUI.fourLayers || GMPUI.fiveLanes || GMPUI.laneShift || GMPUI.angleShift) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.ExtraLanes()); } if (GMPUI.noArrows) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.NoArrows()); } if (GMPUI.swapSabers) { Log("Testing Ground Active"); try { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.TestingGround(10f)); } catch (Exception ex) { Log(ex.ToString()); } } if (GMPUI.oneColor) { Log("One Color Activating"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.OneColor()); } if (GMPUI.reverse) { Log("Map Reversal"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.PermaReverse()); } if (GMPUI.gnomeOnMiss == true) { if (spawnController != null) { spawnController.noteWasMissedEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, INoteController noteController) { if (noteController.noteData.noteType != NoteType.Bomb) { try { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } catch (Exception ex) { Log(ex.ToString()); } } }; spawnController.noteWasCutEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, INoteController noteController, NoteCutInfo noteCutInfo) { if (!noteCutInfo.allIsOK) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } }; } } modifiersInit = true; } if (GMPUI.tunnel) { Log("Tunnel Activating"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.PermaEncasement(0f)); } }
public void OnActiveSceneChanged(Scene arg0, Scene scene) { if (scene.name == "MenuViewControllers") { activateDuringIsolated = false; Log("Switched to Menu"); SharedCoroutineStarter.instance.StartCoroutine(GrabPP()); var controllers = Resources.FindObjectsOfTypeAll <VRController>(); if (controllers != null) { foreach (VRController controller in controllers) { if (controller != null) { if (controller.ToString() == "ControllerLeft (VRController)") { leftController = controller; } if (controller.ToString() == "ControllerRight (VRController)") { rightController = controller; } } // Log(controller.ToString()); } // Log("Left:" + leftController.ToString()); // Log("Right: " + rightController.ToString()); } } if (scene.name == "GameCore") { RemovePatches(); } if (_mainSettingsModel == null) { var menu = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().FirstOrDefault(); if (menu != null) { _mainSettingsModel = menu.GetField <MainSettingsModelSO>("_mainSettingsModel"); _mainSettingsModel.Load(true); Log("RUMBLE: " + _mainSettingsModel.controllersRumbleEnabled.ToString()); if (!setDefaultRumble) { defaultRumble = _mainSettingsModel.controllersRumbleEnabled; ModPrefs.SetInt("GameplayModifiersPlus", "GameRumbleSetting", _mainSettingsModel.controllersRumbleEnabled ? 1 : 0); setDefaultRumble = true; Log("Set Default Rumble Value"); } } } if (_mainSettingsModel != null) { defaultRumble = ModPrefs.GetInt("GameplayModifiersPlus", "GameRumbleSetting", -1, false) != 1 ? false : true; _mainSettingsModel.controllersRumbleEnabled.value = defaultRumble; _mainSettingsModel.Save(); } paused = false; if (!customColorsInstalled) { if (colorA != null) { colorA.SetColor(defColorA); } if (colorB != null) { colorB.SetColor(defColorB); } } // try // { if (scene.name == "EmptyTransition") { Log("Resetting Chat Powers Object"); if (chatPowers != null) { GameObject.Destroy(chatPowers); } } if (chatPowers == null) { Log("Null Creation of Chat Powers Object"); chatPowers = new GameObject("Chat Powers"); GameObject.DontDestroyOnLoad(chatPowers); twitchPowers = chatPowers.AddComponent <TwitchPowers>(); } // } // catch(Exception ex) // { // Log(ex.ToString()); // } GMPDisplay display = chatPowers.GetComponent <GMPDisplay>(); if (display != null) { display.Destroy(); GameObject.Destroy(display); } ReadPrefs(); if (GMPUI.chatIntegration && twitchPluginInstalled) { if (twitchPowers != null) { cooldowns.ResetCooldowns(); TwitchPowers.ResetPowers(false); twitchPowers.StopAllCoroutines(); } if (ChatConfig.resetChargesEachLevel) { charges = 0; } } // twitchCommands.StopAllCoroutines(); haveSongNJS = false; if (soundIsPlaying == true) { gnomeSound.Stop(); } soundIsPlaying = false; isValidScene = false; playerInfo = false; modifiersInit = false; if (arg0.name == "EmpyTransition" && chatPowers != null) { GameObject.Destroy(chatPowers); } if (scene.name == "GameCore") { Log("Isolated: " + BS_Utils.Gameplay.Gamemode.IsIsolatedLevel); isValidScene = true; if (BS_Utils.Gameplay.Gamemode.IsIsolatedLevel && !activateDuringIsolated) { Log("Isolated Level, not activating"); return; } // Log("Pre GrabGrab"); GameObject.Destroy(GameObject.Find("Color Setter")); soundEffectManager = Resources.FindObjectsOfTypeAll <NoteCutSoundEffectManager>().FirstOrDefault(); spawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault(); energyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().First(); energyPanel = Resources.FindObjectsOfTypeAll <GameEnergyUIPanel>().First(); ColorManager = Resources.FindObjectsOfTypeAll <ColorManager>().First(); levelData = BS_Utils.Plugin.LevelData; // Log("Post GrabGrab"); if (spawnController != null) { spawnController.noteDidStartJumpEvent += SpawnController_ModifiedJump; spawnController.noteWasCutEvent += SpawnController_ScaleRemoveCut; spawnController.noteWasMissedEvent += SpawnController_ScaleRemoveMiss; } else { Log("Spawn Controller Null"); } // Log("Post GrabGrab 2"); currentSongSpeed = levelData.GameplayCoreSceneSetupData.gameplayModifiers.songSpeedMul; BS_Utils.Plugin.LevelDidFinishEvent += LevelData_didFinishEvent; // Log("Post GrabGrab 3"); if (!Multiplayer.MultiMain.multiActive.Value) { if (GMPUI.chatIntegration && ChatConfig.maxCharges > 0 && twitchPluginInstalled) { chatPowers.AddComponent <GMPDisplay>(); } if (GMPUI.chatIntegration && ChatConfig.timeForCharges > 0 && twitchPluginInstalled) { twitchPowers.StartCoroutine(TwitchPowers.ChargeOverTime()); } } // Log("Post GrabGrab 4"); pauseManager = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().First(); var colors = Resources.FindObjectsOfTypeAll <SimpleColorSO>(); // Log("Pre Color"); foreach (SimpleColorSO color in colors) { // Log(color.name); if (color.name == "BaseNoteColor1") { colorA = color; } if (color.name == "BaseNoteColor0") { colorB = color; } } oldColorA.SetColor(colorA); oldColorB.SetColor(colorB); // Log("Pre ChatInt"); // Log(colorA.color.ToString()); if (GMPUI.chatIntegration && charges <= ChatConfig.maxCharges && twitchPluginInstalled) { charges += ChatConfig.chargesPerLevel; if (charges > ChatConfig.maxCharges) { charges = ChatConfig.maxCharges; } // TryAsyncMessage("Current Charges: " + charges); } // Log("Pre Audio/Player"); // ReflectionUtil.SetProperty(typeof(PracticePlugin.Plugin), "TimeScale", 1f); AudioTimeSync = Resources.FindObjectsOfTypeAll <AudioTimeSyncController>().FirstOrDefault(); if (AudioTimeSync != null) { songAudio = AudioTimeSync.GetField <AudioSource>("_audioSource"); if (songAudio == null) { Log("Audio null"); } // Log("Object Found"); } //Get Sabers player = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault(); if (player != null) { playerInfo = true; } else { playerInfo = false; Log("Player is null"); } CheckGMPModifiers(); } }
public static IEnumerator TestingGround(float length) { yield return(new WaitForSeconds(length)); TwitchPowers.AdjustNJS(15f); }
public void OnActiveSceneChanged(Scene arg0, Scene scene) { if (scene.name == "MenuViewControllers") { activateDuringIsolated = false; } if (scene.name == "EmptyTransition") { Log("Resetting Chat Powers Object"); if (chatPowers != null) { GameObject.Destroy(chatPowers); } } if (chatPowers == null) { // Log("Null Creation of Chat Powers Object"); chatPowers = new GameObject("Chat Powers"); GameObject.DontDestroyOnLoad(chatPowers); twitchPowers = chatPowers.AddComponent <TwitchPowers>(); } GMPDisplay display = chatPowers.GetComponent <GMPDisplay>(); if (display != null) { display.Destroy(); GameObject.Destroy(display); } ReadPrefs(); if (GMPUI.chatIntegration && twitchPluginInstalled) { if (twitchPowers != null) { cooldowns.ResetCooldowns(); TwitchPowers.ResetPowers(false); twitchPowers.StopAllCoroutines(); } if (Config.resetChargesEachLevel) { GameModifiersController.charges = 0; } } isValidScene = false; if (arg0.name == "EmpyTransition" && chatPowers != null) { GameObject.Destroy(chatPowers); } if (scene.name == "GameCore") { Log("Isolated: " + BS_Utils.Gameplay.Gamemode.IsIsolatedLevel); isValidScene = true; if (BS_Utils.Gameplay.Gamemode.IsIsolatedLevel && !activateDuringIsolated) { Log("Isolated Level, not activating"); return; } if (!BS_Utils.Plugin.LevelData.IsSet || BS_Utils.Plugin.LevelData.Mode != BS_Utils.Gameplay.Mode.Standard) { return; } ColorController.oldColorScheme = null; levelData = BS_Utils.Plugin.LevelData; GameObjects.Load(); GameModifiersController.currentSongSpeed = levelData.GameplayCoreSceneSetupData.gameplayModifiers.songSpeedMul; chatPowers.AddComponent <GMPDisplay>(); if (GMPUI.chatIntegration && Config.timeForCharges > 0 && twitchPluginInstalled) { twitchPowers.StartCoroutine(TwitchPowers.ChargeOverTime()); } if (GMPUI.chatIntegration && GameModifiersController.charges <= Config.maxCharges && twitchPluginInstalled) { GameModifiersController.charges += Config.chargesPerLevel; if (GameModifiersController.charges > Config.maxCharges) { GameModifiersController.charges = Config.maxCharges; } } SharedCoroutineStarter.instance.StartCoroutine(GameModifiersController.CheckGMPModifiers()); } }
public static void CheckGMPModifiers() { if (GMPUI.bulletTime || GMPUI.chatIntegration || GMPUI.funky || GMPUI.oneColor || GMPUI.gnomeOnMiss || GMPUI.njsRandom || GMPUI.noArrows || GMPUI.randomSize || GMPUI.fixedNoteScale != 1f) { // ApplyPatches(); BS_Utils.Gameplay.ScoreSubmission.DisableSubmission("GameplayModifiersPlus"); if (GMPUI.njsRandom) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.RandomNJS()); } if (GMPUI.noArrows) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.NoArrows()); } if (GMPUI.swapSabers) { Log("Testing Ground Active"); try { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.TestingGround(5f)); } catch (Exception ex) { Log(ex.ToString()); } } if (GMPUI.oneColor) { Log("One Color Activating"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.OneColor()); } if (GMPUI.gnomeOnMiss == true) { if (spawnController != null) { spawnController.noteWasMissedEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, NoteController noteController) { if (noteController.noteData.noteType != NoteType.Bomb) { try { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } catch (Exception ex) { Log(ex.ToString()); } } }; spawnController.noteWasCutEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, NoteController noteController, NoteCutInfo noteCutInfo) { if (!noteCutInfo.allIsOK) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } }; } } } }
public void CheckGameplayCommands(TwitchMessage message) { if (message.Content.ToLower().Contains("!gm da") && !Plugin.cooldowns.GetCooldown("Note") && !Plugin.levelData.gameplayCoreSetupData.gameplayModifiers.disappearingArrows && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.daChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempDA(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "DA", "Super DA Active.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.daChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.daChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempDA(Plugin.Config.daDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.daCooldown, "DA", "DA Active.")); Plugin.charges -= Plugin.Config.daChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm njsrandom") && !Plugin.cooldowns.GetCooldown("RandomNJS") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.njsRandomChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.njsRandom(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "NJSRandom", "Super Random Note Jump Speed Active.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.njsRandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.njsRandomChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.njsRandom(Plugin.Config.njsRandomDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.njsRandomCooldown, "NJSRandom", "Random Note Jump Speed Active.")); Plugin.charges -= Plugin.Config.njsRandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm noarrows") && !Plugin.cooldowns.GetCooldown("NoArrows") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.noArrowsChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempNoArrows(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "NoArrows", "Super No Arrows Mode Activated.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.noArrowsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.noArrowsChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempNoArrows(Plugin.Config.noArrowsDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.noArrowsCooldown, "NoArrows", "Temporary No Arrows Activated")); Plugin.charges -= Plugin.Config.noArrowsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm funky") && !Plugin.cooldowns.GetCooldown("Funky") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.funkyChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Funky(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Funky", "Time to get Funky.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.funkyChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.funkyChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Funky(Plugin.Config.funkyDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.funkyCooldown, "Funky", "Funky Mode Activated")); Plugin.charges -= Plugin.Config.funkyChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm rainbow") && !Plugin.cooldowns.GetCooldown("Rainbow") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.rainbowChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Rainbow(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Rainbow", "RAIIINBOWWS.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.rainbowChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.rainbowChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Rainbow(Plugin.Config.rainbowDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.rainbowCooldown, "Rainbow", "Rainbow Activated")); Plugin.charges -= Plugin.Config.rainbowChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm bombs") && !Plugin.cooldowns.GetCooldown("Bombs") && Plugin.commandsLeftForMessage > 0 && Plugin.Config.bombChance > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.bombChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.RandomBombs(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Bombs", "Bombs Away!")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.bombChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.bombChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.RandomBombs(Plugin.Config.bombDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.bombCooldown, "Bombs", "Sneaking Bombs into the map.")); Plugin.charges -= Plugin.Config.bombChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } }
public void CheckSizeCommands(TwitchMessage message) { if (message.Content.ToLower().Contains("!gm smaller") && !Plugin.cooldowns.GetCooldown("NormalSize") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.smallerNoteChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.ScaleNotes(0.7f, Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "NormalSize", "Super Note Scale Change Active.")); Plugin.trySuper = false; Plugin.sizeActivated = true; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.smallerNoteChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.smallerNoteChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.ScaleNotes(0.7f, Plugin.Config.smallerNoteDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.smallerNotesCooldown, "NormalSize", "Temporarily Scaling Notes")); Plugin.sizeActivated = true; Plugin.charges -= Plugin.Config.smallerNoteChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm larger") && !Plugin.cooldowns.GetCooldown("NormalSize") && !Plugin.sizeActivated && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.largerNotesChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.ScaleNotes(1.3f, Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "NormalSize", "Super Note Scale Change Active.")); Plugin.trySuper = false; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.largerNotesChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.largerNotesChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.ScaleNotes(1.3f, Plugin.Config.largerNotesDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.largerNotesCooldown, "NormalSize", "Temporarily Scaling Notes")); Plugin.charges -= Plugin.Config.largerNotesChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.Content.ToLower().Contains("!gm random") && !Plugin.cooldowns.GetCooldown("Random") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= Plugin.Config.chargesForSuperCharge + Plugin.Config.randomNotesChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.RandomNotes(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Random", "Super Random Note Scale Change Active.")); Plugin.trySuper = false; Plugin.superRandom = true; Plugin.charges -= Plugin.Config.chargesForSuperCharge + Plugin.Config.randomNotesChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= Plugin.Config.randomNotesChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.RandomNotes(Plugin.Config.randomNotesDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.Config.randomNotesCooldown, "Random", "Randomly Scaling Notes")); Plugin.charges -= Plugin.Config.randomNotesChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } }
public static IEnumerator CheckGMPModifiers() { yield return(new WaitForSeconds(0.1f)); if (GMPUI.EndlessMode || GMPUI.removeCrouchWalls || GMPUI.swapSabers || GMPUI.fiveLanes || GMPUI.angleShift || GMPUI.laneShift || GMPUI.sixLanes || GMPUI.fourLayers || GMPUI.reverse || GMPUI.chatIntegration || GMPUI.funky || GMPUI.njsRandom || GMPUI.noArrows || GMPUI.randomSize || GMPUI.fixedNoteScale != 1f || GMPUI.offsetrandom) { // ApplyPatches(); UnityEngine.Random.InitState(Plugin.levelData.GameplayCoreSceneSetupData.difficultyBeatmap.beatmapData.beatmapObjectsData.Count()); BS_Utils.Gameplay.ScoreSubmission.DisableSubmission("GameplayModifiersPlus"); if (GMPUI.njsRandom || GMPUI.offsetrandom) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.RandomNjsOrOffset()); } if (GMPUI.removeCrouchWalls) { if (Plugin.levelData.GameplayCoreSceneSetupData.gameplayModifiers.enabledObstacleType != GameplayModifiers.EnabledObstacleType.NoObstacles) { Plugin.levelData.GameplayCoreSceneSetupData.gameplayModifiers.SetProperty("enabledObstacleType", GameplayModifiers.EnabledObstacleType.FullHeightOnly); } } if (GMPUI.sixLanes || GMPUI.fourLayers || GMPUI.fiveLanes || GMPUI.laneShift || GMPUI.angleShift) { bool notSafe = false; var songdata = SongCore.Collections.RetrieveDifficultyData(BS_Utils.Plugin.LevelData.GameplayCoreSceneSetupData.difficultyBeatmap); if (songdata == null) { notSafe = false; } else { if (songdata.additionalDifficultyData._requirements.Count() > 0) { notSafe = true; } } if (!notSafe) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.ExtraLanes()); } else { Plugin.log.Warn("Not activating Mapping Extensions Modifiers for Map with Requirements"); } } if (GMPUI.noArrows) { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.NoArrows()); } if (GMPUI.swapSabers) { Plugin.Log("Testing Ground Active"); try { Plugin.twitchPowers.StartCoroutine(TwitchPowers.TestingGround(10f)); } catch (Exception ex) { Plugin.Log(ex.ToString()); } } if (GMPUI.reverse) { Plugin.Log("Map Reversal"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.PermaReverse()); } } if (GMPUI.tunnel) { Plugin.Log("Tunnel Activating"); SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.PermaEncasement(0f)); } if (GMPUI.EndlessMode) { BS_Utils.Gameplay.ScoreSubmission.DisableSubmission("GameplayModifiersPlus"); new GameObject("GMP Endless Behavior").AddComponent <EndlessBehavior>(); } }
private void SceneManagerOnActiveSceneChanged(Scene arg0, Scene scene) { paused = false; if (!customColorsInstalled) { if (colorA != null) { colorA.SetColor(defColorA); } if (colorB != null) { colorB.SetColor(defColorB); } } // try // { if (scene.name == "EmptyTransition") { Log("Resetting Chat Powers Object"); if (chatPowers != null) { GameObject.Destroy(chatPowers); } } if (chatPowers == null) { Log("Null Creation of Chat Powers Object"); chatPowers = new GameObject("Chat Powers"); twitchPowers = chatPowers.AddComponent <TwitchPowers>(); GameObject.DontDestroyOnLoad(chatPowers); } // } // catch(Exception ex) // { // Log(ex.ToString()); // } GMPDisplay display = chatPowers.GetComponent <GMPDisplay>(); if (display != null) { display.Destroy(); GameObject.Destroy(display); } ReadPrefs(); if (GMPUI.chatIntegration) { if (twitchPowers != null) { cooldowns.ResetCooldowns(); TwitchPowers.ResetPowers(false); twitchPowers.StopAllCoroutines(); } if (Config.resetChargesperLevel) { charges = 0; } } // twitchCommands.StopAllCoroutines(); haveSongNJS = false; invalidForScoring = false; if (soundIsPlaying == true) { gnomeSound.Stop(); } soundIsPlaying = false; isValidScene = false; playerInfo = false; if (arg0.name == "EmpyTransition" && chatPowers != null) { GameObject.Destroy(chatPowers); } if (scene.name == ("Menu")) { Log("Switched to Menu"); SharedCoroutineStarter.instance.StartCoroutine(GrabPP()); if (_hasRegistered == false) { TwitchConnection.Instance.StartConnection(); TwitchConnection.Instance.RegisterOnMessageReceived(TwitchConnection_OnMessageReceived); _hasRegistered = true; } var controllers = Resources.FindObjectsOfTypeAll <VRController>(); if (controllers != null) { foreach (VRController controller in controllers) { if (controller != null) { if (controller.ToString() == "ControllerLeft (VRController)") { leftController = controller; } if (controller.ToString() == "ControllerRight (VRController)") { rightController = controller; } } // Log(controller.ToString()); } Log("Left:" + leftController.ToString()); Log("Right: " + rightController.ToString()); } } if (scene.name == "GameCore") { environmentColorsSetter = Resources.FindObjectsOfTypeAll <EnvironmentColorsSetter>().FirstOrDefault(); soundEffectManager = Resources.FindObjectsOfTypeAll <NoteCutSoundEffectManager>().First(); levelData = Resources.FindObjectsOfTypeAll <StandardLevelSceneSetupDataSO>().First(); spawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().First(); energyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().First(); energyPanel = Resources.FindObjectsOfTypeAll <GameEnergyUIPanel>().First(); spawnController.noteDidStartJumpEvent += SpawnController_ModifiedJump; spawnController.noteWasCutEvent += SpawnController_ScaleRemoveCut; spawnController.noteWasMissedEvent += SpawnController_ScaleRemoveMiss; currentSongSpeed = levelData.gameplayCoreSetupData.gameplayModifiers.songSpeedMul; levelData.didFinishEvent += LevelData_didFinishEvent; if (GMPUI.njsRandom) { twitchPowers.StartCoroutine(TwitchPowers.RandomNJS()); } Log(GMPUI.swapSabers.ToString()); if (GMPUI.noArrows) { twitchPowers.StartCoroutine(TwitchPowers.NoArrows()); } if (GMPUI.chatIntegration && Config.maxCharges > 0) { chatPowers.AddComponent <GMPDisplay>(); } if (Config.timeForCharges > 0) { twitchPowers.StartCoroutine(TwitchPowers.ChargeOverTime()); } pauseManager = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().First(); var colors = Resources.FindObjectsOfTypeAll <SimpleColorSO>(); foreach (SimpleColorSO color in colors) { Log(color.name); if (color.name == "Color0") { colorA = color; } if (color.name == "Color1") { colorB = color; } } oldColorA.SetColor(colorA); oldColorB.SetColor(colorB); Log(colorA.color.ToString()); if (GMPUI.chatIntegration && charges <= Config.maxCharges) { charges += Config.chargesPerLevel; if (charges > Config.maxCharges) { charges = Config.maxCharges; } // TwitchConnection.Instance.SendChatMessage("Current Charges: " + charges); } // ReflectionUtil.SetProperty(typeof(PracticePlugin.Plugin), "TimeScale", 1f); isValidScene = true; AudioTimeSync = Resources.FindObjectsOfTypeAll <AudioTimeSyncController>().FirstOrDefault(); if (AudioTimeSync != null) { songAudio = AudioTimeSync.GetField <AudioSource>("_audioSource"); if (songAudio != null) { Log("Audio not null"); } Log("Object Found"); } //Get Sabers player = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault(); if (player != null) { leftSaber = player.leftSaber; rightSaber = player.rightSaber; playerInfo = true; } else { playerInfo = false; Log("Player is null"); } Log(leftSaber.handlePos.ToString()); Log(leftSaber.saberBladeTopPos.ToString()); if (GMPUI.swapSabers) { Log("Testing Ground Active"); try { SharedCoroutineStarter.instance.StartCoroutine(TwitchPowers.TestingGround(5f)); } catch (Exception ex) { Log(ex.ToString()); } } // SharedCoroutineStarter.instance.StartCoroutine(SwapSabers(leftSaber, rightSaber)); if (GMPUI.gnomeOnMiss == true) { invalidForScoring = true; if (spawnController != null) { spawnController.noteWasMissedEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, NoteController noteController) { if (noteController.noteData.noteType != NoteType.Bomb) { try { twitchPowers.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } catch (Exception ex) { Log(ex.ToString()); } } }; spawnController.noteWasCutEvent += delegate(BeatmapObjectSpawnController beatmapObjectSpawnController2, NoteController noteController, NoteCutInfo noteCutInfo) { if (!noteCutInfo.allIsOK) { twitchPowers.StartCoroutine(TwitchPowers.SpecialEvent()); Log("Gnoming"); } }; } } if (GMPUI.bulletTime || GMPUI.chatIntegration || GMPUI.fixedNoteScale != 1f) { invalidForScoring = true; } /* * if(GMPUI.superHot == true) * { * startGMPUI.superHot = false; * SharedCoroutineStarter.instance.StartCoroutine(Wait(1f)); * * } * */ } }