public virtual void ToggleDoors(bool secure, bool open) { Doors.ForEachReverse( d => { if (d == null || d.Deleted || d.Map != Map) { Doors.Remove(d); return; } if ((!d.Open || !CanCloseDoor(d)) && (d.Open || !CanOpenDoor(d))) { return; } d.Open = open; d.Locked = secure; if (_DoorTimerField == null) { return; } var t = _DoorTimerField.GetValue(d) as Timer; if (t != null) { t.Stop(); } }); }