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; }
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; } } } })); }