public void Update(Status status, IIsaacReader reader)
        {
            if (!status.Ready)
            {
                SoundFunPlayer.ResetTouchedItems();
                _firstCheck = true;
                return;
            }

            var numberOfPlayers = MemoryReader.GetNumberOfPlayers();

            if (numberOfPlayers == 0)
            {
                SoundFunPlayer.ResetTouchedItems();
                _firstCheck = true;
                return;
            }

            var timerCounter = reader.GetTimeCounter();
            var reseted      = timerCounter < 2;

            // resets on hold "r"
            if (reseted)
            {
                SoundFunPlayer.ResetTouchedItems();
            }

            if (reader.IsGamePaused())
            {
                SoundFunPlayer.Pause(false);
                return;
            }

            // tries to resume
            SoundFunPlayer.Resume(false);

            var startCheck = reseted || _firstCheck;

            _firstCheck = false;

            SoundFunPlayer.CheckPlaySound(reader.GetItemsTouchedList(), startCheck);
        }