コード例 #1
0
        public static IEnumerator <float> Unlock079(int time)
        {
            yield return(Timing.WaitForSeconds(time));

            var state = RoleType.Scp079.LockedUpState();
            var ev    = new TogglingLockedUpStateEventArgs(RoleType.Scp079, state, !state);

            if (!ev.IsAllowed)
            {
                yield break;
            }

            ToggleLockedUpState(RoleType.Scp079);
            foreach (var player in Player.List.Where(x => x.Role == RoleType.Scp079))
            {
                player.SendContainmentBreachText();
            }
        }
コード例 #2
0
        // Unlock
        public static IEnumerator <float> Unlock106s(int time)
        {
            yield return(Timing.WaitForSeconds(time));

            var state = RoleType.Scp106.LockedUpState();
            var ev    = new TogglingLockedUpStateEventArgs(RoleType.Scp106, state, !state);

            if (!ev.IsAllowed)
            {
                yield break;
            }

            var pos = RoleType.Scp106.GetRandomSpawnProperties().Item1;

            ToggleLockedUpState(RoleType.Scp106);
            foreach (var player in Player.List.Where(x => x.Role == RoleType.Scp106))
            {
                player.Position = pos;
                player.SendContainmentBreachText();
            }
        }
コード例 #3
0
        public static IEnumerator <float> Unlock939s(int time)
        {
            yield return(Timing.WaitForSeconds(time));

            var state = RoleType.Scp93953.LockedUpState();
            var ev    = new TogglingLockedUpStateEventArgs(RoleType.Scp93953, state, !state);

            if (!ev.IsAllowed)
            {
                yield break;
            }

            foreach (var door in EventHandlers.Scp939Doors)
            {
                door.Unlock();
            }

            ToggleLockedUpState(RoleType.Scp93953);
            foreach (var player in Player.List.Where(x => x.Role.Type.Is939()))
            {
                player.SendContainmentBreachText();
            }
        }
コード例 #4
0
 public static void OnChangingLockedUpStatus(TogglingLockedUpStateEventArgs ev) => TogglingLockedUpState.InvokeSafely(ev);
コード例 #5
0
        public void OnRoundStart()
        {
            Methods.ProcessDoors();
            Methods.SendCassies();

            RunningCoroutines.Add(Timing.CallDelayed(1, () =>
            {
                foreach (var scp in plugin.Config.AffectedScps)
                {
                    if (Scps939Locked && scp.RoleType.Is939())
                    {
                        continue;
                    }

                    var state = scp.RoleType.LockedUpState();
                    var ev    = new TogglingLockedUpStateEventArgs(scp.RoleType, state, !state);
                    if (!ev.IsAllowed)
                    {
                        continue;
                    }

                    LockdownController.ToggleLockedUpState(scp.RoleType);
                    switch (scp.RoleType)
                    {
                    case RoleType.Scp079:
                        {
                            RunningCoroutines.Add(Timing.RunCoroutine(LockdownController.Unlock079(scp.TimeToUnlock)));
                            break;
                        }

                    case RoleType.Scp173:
                        {
                            LockdownController.Lockdown173(scp.TimeToUnlock);
                            break;
                        }

                    case RoleType.Scp106:
                        {
                            LockdownController.Lockdown106(scp.TimeToUnlock);
                            break;
                        }

                    case RoleType.Scp049:
                        {
                            LockdownController.Lockdown049(scp.TimeToUnlock);
                            break;
                        }

                    case RoleType.Scp096:
                        {
                            LockdownController.Lockdown096(scp.TimeToUnlock);
                            break;
                        }

                    case RoleType.Scp93989:
                    case RoleType.Scp93953:
                        {
                            Scps939Locked = true;
                            LockdownController.Lockdown939(scp.TimeToUnlock);
                            break;
                        }
                    }
                }
            }));
        }