public void CheckGameplayCommands(TwitchMessage message) { if (message.message.ToLower().Contains("!gm da") && !Plugin.cooldowns.GetCooldown("Note") && !Plugin.levelData.GameplayCoreSceneSetupData.gameplayModifiers.disappearingArrows && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.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 -= ChatConfig.chargesForSuperCharge + ChatConfig.daChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.daChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempDA(ChatConfig.daDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.daCooldown, "DA", "DA Active.")); Plugin.charges -= ChatConfig.daChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm njsrandom") && !Plugin.cooldowns.GetCooldown("RandomNJS") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.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 -= ChatConfig.chargesForSuperCharge + ChatConfig.njsRandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.njsRandomChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.NjsRandom(ChatConfig.njsRandomDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.njsRandomCooldown, "NJSRandom", "Random Note Jump Speed Active.")); Plugin.charges -= ChatConfig.njsRandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm offsetrandom") && !Plugin.cooldowns.GetCooldown("OffsetRandom") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.offsetrandomChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.OffsetRandom(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "OffsetRandom", "Super Random Note Spawn Offset Active.")); Plugin.trySuper = false; Plugin.charges -= ChatConfig.chargesForSuperCharge + ChatConfig.offsetrandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.offsetrandomChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.OffsetRandom(ChatConfig.offsetrandomDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.offsetrandomCooldown, "OffsetRandom", "Random Note Spawn Offset Active.")); Plugin.charges -= ChatConfig.offsetrandomChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm noarrows") && !Plugin.cooldowns.GetCooldown("NoArrows") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.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 -= ChatConfig.chargesForSuperCharge + ChatConfig.noArrowsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.noArrowsChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempNoArrows(ChatConfig.noArrowsDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.noArrowsCooldown, "NoArrows", "Temporary No Arrows Activated")); Plugin.charges -= ChatConfig.noArrowsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm mirror") && !Plugin.cooldowns.GetCooldown("Mirror") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.mirrorChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempMirror(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Mirror", "Super Mirror Mode Activated.")); Plugin.trySuper = false; Plugin.charges -= ChatConfig.chargesForSuperCharge + ChatConfig.mirrorChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.mirrorChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.TempMirror(ChatConfig.mirrorDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.mirrorCooldown, "Mirror", "Temporary Mirror Mode Activated.")); Plugin.charges -= ChatConfig.mirrorChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm reverse") && !Plugin.cooldowns.GetCooldown("Reverse") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.reverseChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Reverse(Plugin.songAudio.clip.length)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(Plugin.songAudio.clip.length, "Reverse", "Reversing entire map :)")); Plugin.trySuper = false; Plugin.charges -= ChatConfig.chargesForSuperCharge + ChatConfig.reverseChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.reverseChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Reverse(ChatConfig.reverseDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.reverseCooldown, "Reverse", "Temporary Map Reversal.")); Plugin.charges -= ChatConfig.reverseChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm funky") && !Plugin.cooldowns.GetCooldown("Funky") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.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 -= ChatConfig.chargesForSuperCharge + ChatConfig.funkyChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.funkyChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Funky(ChatConfig.funkyDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.funkyCooldown, "Funky", "Funky Mode Activated")); Plugin.charges -= ChatConfig.funkyChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm rainbow") && !Plugin.cooldowns.GetCooldown("Rainbow") && Plugin.commandsLeftForMessage > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.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 -= ChatConfig.chargesForSuperCharge + ChatConfig.rainbowChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.rainbowChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.Rainbow(ChatConfig.rainbowDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.rainbowCooldown, "Rainbow", "Rainbow Activated")); Plugin.charges -= ChatConfig.rainbowChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } if (message.message.ToLower().Contains("!gm bombs") && !Plugin.cooldowns.GetCooldown("Bombs") && Plugin.commandsLeftForMessage > 0 && ChatConfig.bombsChance > 0) { if (Plugin.trySuper && Plugin.charges >= ChatConfig.chargesForSuperCharge + ChatConfig.bombsChargeCost) { // 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 -= ChatConfig.chargesForSuperCharge + ChatConfig.bombsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } else if (Plugin.charges >= ChatConfig.bombsChargeCost) { // Plugin.beepSound.Play(); Plugin.twitchPowers.StartCoroutine(TwitchPowers.RandomBombs(ChatConfig.bombsDuration)); Plugin.twitchPowers.StartCoroutine(TwitchPowers.CoolDown(ChatConfig.bombsCooldown, "Bombs", "Sneaking Bombs into the map.")); Plugin.charges -= ChatConfig.bombsChargeCost; Plugin.commandsLeftForMessage -= 1; globalActive = true; } } }