// Token: 0x06000069 RID: 105 RVA: 0x00004B71 File Offset: 0x00002D71
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
            base.spriteAnimator.PlayForDuration("talk_start", 1f, "talk", false);
            interactor.SetInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f);
            yield return(null);

            int num;

            for (int conversationIndex = this.m_allowMeToIntroduceMyself ? 0 : (this.conversation.Count - 1); conversationIndex < this.conversation.Count - 1; conversationIndex = num + 1)
            {
                Tools.Print <string>(string.Format("Index: {0}", conversationIndex), "FFFFFF", false);
                TextBoxManager.ClearTextBox(this.talkPoint);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, this.conversation[conversationIndex], interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, true, false);
                float timer = 0f;
                while (!BraveInput.GetInstanceForPlayer(interactor.PlayerIDX).ActiveActions.GetActionFromType(GungeonActions.GungeonActionType.Interact).WasPressed || timer < 0.4f)
                {
                    timer += BraveTime.DeltaTime;
                    yield return(null);
                }
                num = conversationIndex;
            }
            this.m_allowMeToIntroduceMyself = false;
            TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, this.conversation[this.conversation.Count - 1], interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, true, false);
            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, this.acceptText, this.declineText);
            int selectedResponse = -1;

            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            bool flag  = selectedResponse == 0;
            bool flag2 = flag;

            if (flag2)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                base.spriteAnimator.PlayForDuration("do_effect", 2f, "talk", false);
                while (base.spriteAnimator.CurrentFrame < 9)
                {
                    yield return(null);
                }
                Action <PlayerController, GameObject> onAccept = this.OnAccept;
                bool flag3 = onAccept != null;
                if (flag3)
                {
                    onAccept(interactor, base.gameObject);
                    this.counterfoirfuckssakeWORK += 1f;
                }
                base.spriteAnimator.Play("talk");
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "thenk uuuuuu!", interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
                yield return(new WaitForSeconds(1f));

                onAccept = null;
            }
            else
            {
                Action <PlayerController, GameObject> onDecline = this.OnDecline;
                bool flag4 = onDecline != null;
                if (flag4)
                {
                    onDecline(interactor, base.gameObject);
                }
                TextBoxManager.ClearTextBox(this.talkPoint);
                onDecline = null;
            }
            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1f, 0.25f);
            base.spriteAnimator.Play("idle");
            yield break;
        }