Ejemplo n.º 1
0
        public void OnRoundRestarting()
        {
            // This prevents us from having unwanted coroutines running
            foreach (CoroutineHandle coroutine in RunningCoroutines)
            {
                Timing.KillCoroutines(coroutine);
            }

            Scp049Door = null;
            Scp173Door = null;
            Scp096Door = null;
            Scp939Doors.Clear();
            LockdownController.ResetAllStates();
            RunningCoroutines.Clear();
            Scps939Locked = false;
        }
Ejemplo n.º 2
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;
                        }
                    }
                }
            }));
        }