public static void Postfix(RespawnManager __instance, SpawnableTeamType teamToSpawn)
        {
            int counter = 0;

            foreach (Player Ply in Player.List)
            {
                if (Ply.Role.IsNotHuman(true))
                {
                    counter++;
                }
            }
            if (CreativeToolbox.ConfigRef.Config.EnableRandomChaosInsurgencyAnnouncementChance)
            {
                NewChance = CIAnnouncementChance.Next(0, 100);
                if (NewChance < CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncementChance)
                {
                    if (CreativeToolbox.ConfigRef.Config.EnableCustomAnnouncements && teamToSpawn == SpawnableTeamType.ChaosInsurgency)
                    {
                        NineTailedFoxAnnouncer.singleton.ServerOnlyAddGlitchyPhrase(CreativeToolboxEventHandler.FormatMessage(CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncement, counter), CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncementGlitchChance * 0.01f, CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncementJamChance * 0.01f);
                    }
                }
            }
            else
            if (CreativeToolbox.ConfigRef.Config.EnableCustomAnnouncements && teamToSpawn == SpawnableTeamType.ChaosInsurgency)
            {
                NineTailedFoxAnnouncer.singleton.ServerOnlyAddGlitchyPhrase(CreativeToolboxEventHandler.FormatMessage(CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncement, counter), CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncementGlitchChance * 0.01f, CreativeToolbox.ConfigRef.Config.ChaosInsurgencyAnnouncementJamChance * 0.01f);
            }
        }
        public void RunWhenplayerDrinksSCP207(UsedMedicalItemEventArgs Used207)
        {
            if (Used207.Player != Hub || Used207.Item != ItemType.SCP207)
            {
                return;
            }

            if (Hub.IsGodModeEnabled)
            {
                Counter = 0;
                return;
            }

            if (Counter < CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit)
            {
                string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.DrinkingScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) });
                Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }

            if (Counter == CreativeToolbox.ConfigRef.Config.Scp207PryGateLimit)
            {
                string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.PryGatesWithScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) });
                if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub))
                {
                    CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(Hub);
                    Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[]
                    {
                        new StringHintParameter("")
                    }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
                }
            }

            if (Counter >= CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit)
            {
                string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.ExplodeAfterScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) });
                if (CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub))
                {
                    CreativeToolboxEventHandler.PlayersThatCanPryGates.Remove(Hub);
                }
                Hub.Health           = 0;
                Hub.AdrenalineHealth = 0;
                Hub.Kill();
                CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(Hub, false);
                Counter = 0;
                Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }
        }
Beispiel #3
0
        public void RunWhenplayerDrinksSCP207(UsedMedicalItemEventArgs Used207)
        {
            if (Used207.Player != Hub || Used207.Item != ItemType.SCP207)
            {
                return;
            }

            if (Hub.IsGodModeEnabled)
            {
                Counter = 0;
                return;
            }

            if (Counter < CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit)
            {
                Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nnumber of drinks consumed: {Counter}", new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }

            if (Counter == CreativeToolbox.ConfigRef.Config.Scp207PryGateLimit)
            {
                if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub.ReferenceHub))
                {
                    CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(Hub.ReferenceHub);
                    Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nyou can now pry gates open", new HintParameter[]
                    {
                        new StringHintParameter("")
                    }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
                }
            }

            if (Counter >= CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit)
            {
                CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(Hub, false);
                Counter = 0;
                Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nyou drank too much and your body could not handle it", new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }
        }
 public override void OnEnabled()
 {
     base.OnEnabled();
     Handler = new CreativeToolboxEventHandler(this);
     harmonyCounter++;
     HarmonyInstance = new Harmony($"koukococoa.creativetoolbox_{harmonyCounter}");
     HarmonyInstance.PatchAll();
     Exiled.Events.Handlers.Player.InteractingDoor           += Handler.RunWhenDoorIsInteractedWith;
     Exiled.Events.Handlers.Player.Joined                    += Handler.RunOnPlayerJoin;
     Exiled.Events.Handlers.Player.Left                      += Handler.RunOnPlayerLeave;
     Exiled.Events.Handlers.Player.MedicalItemUsed           += Handler.RunOnMedItemUsed;
     Exiled.Events.Handlers.Player.Hurting                   += Handler.RunOnPlayerHurt;
     Exiled.Events.Handlers.Player.Died                      += Handler.RunOnPlayerDeath;
     Exiled.Events.Handlers.Server.SendingRemoteAdminCommand += Handler.RunOnRemoteAdminCommand;
     Exiled.Events.Handlers.Server.RestartingRound           += Handler.RunOnRoundRestart;
     Exiled.Events.Handlers.Server.RoundStarted              += Handler.RunOnRoundStart;
     Exiled.Events.Handlers.Player.EnteringFemurBreaker      += Handler.RunWhenPlayerEntersFemurBreaker;
     Exiled.Events.Handlers.Warhead.Detonated                += Handler.RunWhenWarheadIsDetonated;
     Exiled.Events.Handlers.Server.RespawningTeam            += Handler.RunWhenTeamRespawns;
 }
 public override void OnDisabled()
 {
     Log.Info("Disabling \"CreativeToolbox\"");
     if (HarmonyInstance != null || HarmonyInstance != default)
     {
         HarmonyInstance.UnpatchAll();
     }
     Exiled.Events.Handlers.Server.RespawningTeam            -= Handler.RunWhenTeamRespawns;
     Exiled.Events.Handlers.Warhead.Detonated                -= Handler.RunWhenWarheadIsDetonated;
     Exiled.Events.Handlers.Player.EnteringFemurBreaker      -= Handler.RunWhenPlayerEntersFemurBreaker;
     Exiled.Events.Handlers.Server.RoundStarted              -= Handler.RunOnRoundStart;
     Exiled.Events.Handlers.Server.RestartingRound           -= Handler.RunOnRoundRestart;
     Exiled.Events.Handlers.Server.SendingRemoteAdminCommand -= Handler.RunOnRemoteAdminCommand;
     Exiled.Events.Handlers.Player.Died            -= Handler.RunOnPlayerDeath;
     Exiled.Events.Handlers.Player.Hurting         -= Handler.RunOnPlayerHurt;
     Exiled.Events.Handlers.Player.MedicalItemUsed -= Handler.RunOnMedItemUsed;
     Exiled.Events.Handlers.Player.Left            -= Handler.RunOnPlayerLeave;
     Exiled.Events.Handlers.Player.Joined          -= Handler.RunOnPlayerJoin;
     Exiled.Events.Handlers.Player.InteractingDoor -= Handler.RunWhenDoorIsInteractedWith;
     Handler = null;
 }
        private static void Postfix(RespawnManager __instance, SpawnableTeamType teamToSpawn)
        {
            int counter = 0;

            foreach (Player ply in Player.List)
            {
                if (ply.Team == Team.SCP)
                {
                    counter++;
                }
            }

            if (Instance.Config.EnableRandomChaosInsurgencyAnnouncementChance)
            {
                _newChance = CiAnnouncementChance.Next(0, 100);
                if (!(_newChance < Instance.Config.ChaosInsurgencyAnnouncementChance))
                {
                    return;
                }

                if (Instance.Config.EnableCustomAnnouncements && teamToSpawn == SpawnableTeamType.ChaosInsurgency)
                {
                    NineTailedFoxAnnouncer.singleton.ServerOnlyAddGlitchyPhrase(
                        CreativeToolboxEventHandler.FormatMessage(Instance.Config.ChaosInsurgencyAnnouncement, counter),
                        Instance.Config.ChaosInsurgencyAnnouncementGlitchChance * 0.01f,
                        Instance.Config.ChaosInsurgencyAnnouncementJamChance * 0.01f);
                }
            }
            else if (Instance.Config.EnableCustomAnnouncements && teamToSpawn == SpawnableTeamType.ChaosInsurgency)
            {
                NineTailedFoxAnnouncer.singleton.ServerOnlyAddGlitchyPhrase(
                    CreativeToolboxEventHandler.FormatMessage(Instance.Config.ChaosInsurgencyAnnouncement, counter),
                    Instance.Config.ChaosInsurgencyAnnouncementGlitchChance * 0.01f,
                    Instance.Config.ChaosInsurgencyAnnouncementJamChance * 0.01f);
            }
        }
        public override void OnEnabled()
        {
            if (Handler == null)
            {
                Handler = new CreativeToolboxEventHandler(this);
            }

            HarmonyInstance = new Harmony($"koukococoa.creativetoolbox_{++harmonyCounter}");
            HarmonyInstance.PatchAll();

            Exiled.Events.Handlers.Player.InteractingDoor      += Handler.RunWhenDoorIsInteractedWith;
            Exiled.Events.Handlers.Player.Joined               += Handler.RunOnPlayerJoin;
            Exiled.Events.Handlers.Player.Left                 += Handler.RunOnPlayerLeave;
            Exiled.Events.Handlers.Player.MedicalItemUsed      += Handler.RunOnMedItemUsed;
            Exiled.Events.Handlers.Player.Hurting              += Handler.RunOnPlayerHurt;
            Exiled.Events.Handlers.Player.Died                 += Handler.RunOnPlayerDeath;
            Exiled.Events.Handlers.Server.RestartingRound      += Handler.RunOnRoundRestart;
            Exiled.Events.Handlers.Server.RoundStarted         += Handler.RunOnRoundStart;
            Exiled.Events.Handlers.Player.EnteringFemurBreaker += Handler.RunWhenPlayerEntersFemurBreaker;
            Exiled.Events.Handlers.Warhead.Detonated           += Handler.RunWhenWarheadIsDetonated;
            Exiled.Events.Handlers.Server.RespawningTeam       += Handler.RunWhenTeamRespawns;
            Exiled.Events.Handlers.Warhead.Stopping            += Handler.RunWhenWarheadIsStopped;
            Exiled.Events.Handlers.Map.AnnouncingNtfEntrance   += Handler.RunWhenNTFSpawns;
        }
        public void RunWhenPlayerDrinksScp207(UsedMedicalItemEventArgs ev)
        {
            if (ev.Player != _ply || ev.Item != ItemType.SCP207)
            {
                return;
            }

            if (_ply.IsGodModeEnabled)
            {
                counter = 0;
                return;
            }

            if (counter < Instance.Config.Scp207DrinkLimit)
            {
                string messageToReplace =
                    Instance.Config.DrinkingScp207Message.ReplaceAfterToken('%',
                                                                            new[] { new Tuple <string, object>("counter", counter) });
                ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}",
                                                               new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }

            if (counter == Instance.Config.Scp207PryGateLimit)
            {
                string messageToReplace =
                    Instance.Config.PryGatesWithScp207Message.ReplaceAfterToken('%',
                                                                                new[] { new Tuple <string, object>("counter", counter) });
                if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(_ply))
                {
                    CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(_ply);
                    ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}",
                                                                   new HintParameter[]
                    {
                        new StringHintParameter("")
                    }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
                }
            }

            if (counter >= Instance.Config.Scp207DrinkLimit)
            {
                string messageToReplace =
                    Instance.Config.ExplodeAfterScp207Message.ReplaceAfterToken('%',
                                                                                new[] { new Tuple <string, object>("counter", counter) });
                if (CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(_ply))
                {
                    CreativeToolboxEventHandler.PlayersThatCanPryGates.Remove(_ply);
                }
                _ply.Health           = 0;
                _ply.AdrenalineHealth = 0;
                _ply.Kill();
                CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(_ply, false);
                counter = 0;
                ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}",
                                                               new HintParameter[]
                {
                    new StringHintParameter("")
                }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f)));
            }
        }