private IEnumerator DoYouTubeSafeAnnouncement(Vector3 DialogBoxOffset)
        {
            string[] m_Lyrics = new string[] {
                "Never gonna give you up!",
                "Never gonna let you down!",
                "Never gonna run around and desert you!",
                "Never gonna make you cry!"
            };
            yield return(new WaitForSeconds(0.5f));

            TextBoxManager.ShowTextBox(transform.position + DialogBoxOffset, transform, 5f, m_Lyrics[0], "rickrolldialog1", false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
            yield return(new WaitForSeconds(2));

            TextBoxManager.ClearTextBox(transform);
            TextBoxManager.ShowTextBox(transform.position + DialogBoxOffset, transform, 5f, m_Lyrics[1], "rickrolldialog2", false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
            yield return(new WaitForSeconds(2));

            TextBoxManager.ClearTextBox(transform);
            TextBoxManager.ShowTextBox(transform.position + DialogBoxOffset, transform, 5f, m_Lyrics[2], "rickrolldialog3", false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
            yield return(new WaitForSeconds(2));

            TextBoxManager.ClearTextBox(transform);
            TextBoxManager.ShowTextBox(transform.position + DialogBoxOffset, transform, 5f, m_Lyrics[3], "rickrolldialog4", false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
            yield return(new WaitForSeconds(2));

            TextBoxManager.ClearTextBox(transform);
            yield break;
        }
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
            base.spriteAnimator.PlayForDuration("talk_start", 1, "talk");
            interactor.SetInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f);
            yield return(null);

            int conversationIndex = m_allowMeToIntroduceMyself ? 0 : conversation.Count - 1;

            while (conversationIndex < conversation.Count - 1)
            {
                Tools.Print($"Index: {conversationIndex}");
                TextBoxManager.ClearTextBox(this.talkPoint);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversation[conversationIndex], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);
                float timer = 0;
                while (!BraveInput.GetInstanceForPlayer(interactor.PlayerIDX).ActiveActions.GetActionFromType(GungeonActions.GungeonActionType.Interact).WasPressed || timer < 0.4f)
                {
                    timer += BraveTime.DeltaTime;
                    yield return(null);
                }
                conversationIndex++;
            }
            m_allowMeToIntroduceMyself = false;
            TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversation[conversation.Count - 1], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptText, declineText);
            int selectedResponse = -1;

            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }

            if (selectedResponse == 0)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                base.spriteAnimator.PlayForDuration("do_effect", -1, "talk");

                while (base.spriteAnimator.CurrentFrame < 20) //play do effect anim
                {
                    yield return(null);
                }
                OnAccept?.Invoke(interactor, this.gameObject);
                base.spriteAnimator.Play("talk");
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "Bam!", interactor.characterAudioSpeechTag, instant: false);
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                OnDecline?.Invoke(interactor, this.gameObject);
                TextBoxManager.ClearTextBox(this.talkPoint);
            }

            // Free player and run OnAccept/OnDecline actions
            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1, 0.25f);
            base.spriteAnimator.Play("idle");
        }
 public override void OnExitRange(PlayerController interactor)
 {
     base.OnExitRange(interactor);
     if (TextBoxManager.HasTextBox(this.talkPoint))
     {
         TextBoxManager.ClearTextBox(this.talkPoint);
     }
 }
        private IEnumerator TalkRaw(string plaintext, Vector3 DialogBoxOffset)
        {
            TextBoxManager.ShowTextBox(transform.position + DialogBoxOffset, transform, 5f, plaintext, "playermimicboss", false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
            bool advancedPressed = false;

            while (!advancedPressed)
            {
                advancedPressed = (BraveInput.GetInstanceForPlayer(0).WasAdvanceDialoguePressed() || BraveInput.GetInstanceForPlayer(1).WasAdvanceDialoguePressed());
                yield return(null);
            }
            TextBoxManager.ClearTextBox(transform);
            yield break;
        }
 private void ClearBox()
 {
     GameUIRoot.Instance.ShowCoreUI(string.Empty);
     m_boxIsExtant = false;
     TextBoxManager.ClearTextBox(textboxSpawnPoint);
     if (DestroyedOnFinish)
     {
         GetAbsoluteParentRoom().DeregisterInteractable(this);
         RoomHandler.unassignedInteractableObjects.Remove(this);
         LootEngine.DoDefaultItemPoof(sprite.WorldCenter, false, false);
         Destroy(gameObject);
     }
 }
Example #6
0
            private IEnumerator ShowTextBoxes(AIActor actor, Vector3 offset)
            {
                foreach (string text in texts)
                {
                    float time = 0.5f + ShowTextTime(text);
                    TextBoxManager.ShowTextBox(actor.transform.position + offset, actor.transform, time, text, GameManager.Instance.PrimaryPlayer.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
                    yield return(new WaitForSeconds(time));

                    TextBoxManager.ClearTextBox(actor.transform);
                }
                yield return(new WaitForSeconds(0.5f));

                yield break;
            }
        private IEnumerator HandleSpentText(PlayerController interactor)
        {
            TextBoxManager.ShowStoneTablet(this.talkPoint.position, this.talkPoint, -1f, StringTableManager.GetLongString(SpentKey), true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, StringTableManager.GetString(DeclineKey), string.Empty);
            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(this.talkPoint);
            yield break;
        }
Example #8
0
        private IEnumerator HandleShrineConversation(PlayerController interactor)
        {
            Shapeshift shapeshift       = GetNextShapeshift(interactor);
            string     targetDisplayKey = "#SHRINE_SHAPESHIFTER_TABLET";

            TextBoxManager.ShowStoneTablet(this.talkPoint.position, this.talkPoint, -1f, StringTableManager.GetLongString(targetDisplayKey), true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            yield return(null);

            string declineKey = (interactor.GetComponent <ShapeShiftBehaviour>() != null) ? "#SHRINE_SHAPESHIFTER_CLEAR" : "#SHRINE_SHAPESHIFTER_DECLINE";

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, StringTableManager.GetString(shapeshift.acceptKey), StringTableManager.GetString(declineKey));
            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(this.talkPoint);
            if (selectedResponse == 0)
            {
                if (interactor.GetComponent <ShapeShiftBehaviour>() != null)
                {
                    interactor.GetComponent <ShapeShiftBehaviour>().RemoveShapeshift();
                }
                ShapeShiftBehaviour.AddToTarget(shapeshift.behaviour, interactor);
                GameUIRoot.Instance.notificationController.DoCustomNotification(StringTableManager.GetString("#SHRINE_SHAPESHIFTER_SHAPESHIFTED"), StringTableManager.GetString("#SHRINE_SHAPESHIFTER_CUR_SHAPESHIFT") + StringTableManager.GetString(shapeshift.name),
                                                                                SpriteBuilder.itemCollection, spriteId, UINotificationController.NotificationColor.PURPLE, false, false);
                AkSoundEngine.PostEvent("Play_OBJ_shrine_accept_01", base.gameObject);
            }
            else
            {
                if (interactor.GetComponent <ShapeShiftBehaviour>() != null)
                {
                    interactor.GetComponent <ShapeShiftBehaviour>().RemoveShapeshift();
                    GameUIRoot.Instance.notificationController.DoCustomNotification(StringTableManager.GetString("#SHRINE_SHAPESHIFTER_SHAPESHIFTED"), StringTableManager.GetString("#SHRINE_SHAPESHIFTER_CUR_SHAPESHIFT") +
                                                                                    StringTableManager.GetString("#SHRINE_SHAPESHIFTER_NORMAL_SHAPESHIFT"), SpriteBuilder.itemCollection, spriteId, UINotificationController.NotificationColor.PURPLE, false, false);
                    AkSoundEngine.PostEvent("Play_OBJ_shrine_accept_01", base.gameObject);
                }
            }
            yield break;
        }
        private IEnumerator HandleShrineConversation(PlayerController interactor)
        {
            string targetDisplayKey = this.StoneTableKey;

            TextBoxManager.ShowStoneTablet(this.talkPoint.position, this.talkPoint, -1f, StringTableManager.GetLongString(targetDisplayKey), true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            yield return(null);

            bool canUse = this.CheckCosts(interactor);

            if (canUse)
            {
                GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, StringTableManager.GetString(AcceptKey), StringTableManager.GetString(DeclineKey));
            }
            else
            {
                GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, StringTableManager.GetString(DeclineKey), string.Empty);
            }
            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(this.talkPoint);
            if (canUse && selectedResponse == 0)
            {
                this.DoShrineEffect(interactor);
                this.m_totalUseCount++;
                if (this.CanBeReused)
                {
                    this.ResetForReuse();
                }
            }
            else
            {
                this.ResetForReuse();
            }
            yield break;
        }
Example #10
0
        private IEnumerator HandleShrineConversation(PlayerController interactor)
        {
            string targetDisplayKey = theCarpetIsntThatComfortableAnymore ? "#INTERACTABLE_CARPET_NOTCOMFORTABLE" : "#INTERACTABLE_CARPET_COMFORTABLE";

            TextBoxManager.ShowThoughtBubble(interactor.sprite.WorldTopCenter, interactor.transform, -1f, StringTableManager.GetLongString(targetDisplayKey), true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            yield return(null);

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, StringTableManager.GetString("#INTERACTABLE_CARPET_ACCEPT"), StringTableManager.GetString("#INTERACTABLE_CARPET_DECLINE"));
            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(interactor.transform);
            if (selectedResponse == 0)
            {
                base.StartCoroutine(this.HandlePlayerWalkIn(interactor));
            }
            yield break;
        }
Example #11
0
        // Token: 0x0600006B RID: 107 RVA: 0x00005704 File Offset: 0x00003904
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            TextBoxManager.ShowStoneTablet(this.talkPoint.position, this.talkPoint, -1f, this.text, true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            yield return(null);

            bool flag = !this.m_canUse;

            if (flag)
            {
                GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, this.declineText, string.Empty);
            }
            else
            {
                bool isToggle = this.isToggle;
                if (isToggle)
                {
                    bool isToggled = this.m_isToggled;
                    if (isToggled)
                    {
                        GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, this.declineText, string.Empty);
                    }
                    else
                    {
                        GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, this.acceptText, string.Empty);
                    }
                }
                else
                {
                    GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, this.acceptText, this.declineText);
                }
            }
            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(this.talkPoint);
            bool flag2 = !this.m_canUse;

            if (flag2)
            {
                yield break;
            }
            bool flag3 = selectedResponse == 0 && this.isToggle;

            if (flag3)
            {
                Action <PlayerController, GameObject> action = this.m_isToggled ? this.OnDecline : this.OnAccept;
                if (action != null)
                {
                    action(interactor, base.gameObject);
                }
                this.m_isToggled = !this.m_isToggled;
                yield break;
            }
            bool flag4 = selectedResponse == 0;

            if (flag4)
            {
                Action <PlayerController, GameObject> onAccept = this.OnAccept;
                if (onAccept != null)
                {
                    onAccept(interactor, base.gameObject);
                }
            }
            else
            {
                Action <PlayerController, GameObject> onDecline = this.OnDecline;
                if (onDecline != null)
                {
                    onDecline(interactor, base.gameObject);
                }
            }
            yield break;
        }
        // Token: 0x06000101 RID: 257 RVA: 0x00009BD9 File Offset: 0x00007DD9
        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", -1f, "talk", false);
                Action <PlayerController, GameObject> onAccept = this.OnAccept;
                bool flag3 = onAccept != null;
                if (flag3)
                {
                    onAccept(interactor, base.gameObject);
                }
                base.spriteAnimator.Play("talk");
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "The deal is on, kid!", interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);
                yield return(new WaitForSeconds(1f));

                onAccept = null;
            }
            else
            {
                Action <PlayerController, GameObject> onDecline = this.OnDecline;
                if (onDecline != null)
                {
                    onDecline(interactor, base.gameObject);
                }
                TextBoxManager.ClearTextBox(this.talkPoint);
            }
            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1f, 0.25f);
            base.spriteAnimator.Play("idle");
            yield break;
        }
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
            base.spriteAnimator.PlayForDuration("talk_start", 1, "talk");
            interactor.SetInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f);
            yield return(null);

            //Determine Dialogue
            var conversationToUse = new List <string>()
            {
                "Null"
            };

            //Price Mult
            GameLevelDefinition lastLoadedLevelDefinition = GameManager.Instance.GetLastLoadedLevelDefinition();
            float PriceMult = (lastLoadedLevelDefinition == null) ? 1f : lastLoadedLevelDefinition.priceMultiplier;

            //Check for if ever met before and then else
            if (hasDeclinedAlreadyThisRun)
            {
                conversationToUse = new List <string>()
                {
                    "You're back? Did you change your mind?",
                    "Did you get hopelessly lost?",
                    "Please tell me you got hopelessly lost!",
                };
            }
            else
            {
                conversationToUse = new List <string>()
                {
                    "Well hello again, young adventurer!",
                    "You look lost... mayhaps you are in need of a finely crafted... map?",
                    "Only " + (20 * PriceMult) + " of those little janglies, you know the deal."
                };
            }


            int conversationIndex = 0;

            while (conversationIndex < conversationToUse.Count - 1)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationIndex], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);
                float timer = 0;
                while (!BraveInput.GetInstanceForPlayer(interactor.PlayerIDX).ActiveActions.GetActionFromType(GungeonActions.GungeonActionType.Interact).WasPressed || timer < 0.4f)
                {
                    timer += BraveTime.DeltaTime;
                    yield return(null);
                }
                conversationIndex++;
            }
            TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationToUse.Count - 1], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);


            var acceptanceTextToUse = "Null";
            var declineTextToUse    = "Null";

            if (hasDeclinedAlreadyThisRun)
            {
                acceptanceTextToUse = "...Just give me the map. <Lose " + (20 * PriceMult) + " Money>";
                declineTextToUse    = "Not lost, I know EXACTLY where I am!";
            }
            else
            {
                acceptanceTextToUse = "Yeah, a map would be nice <Lose " + (20 * PriceMult) + " Money>";
                declineTextToUse    = "No thanks, I can find my way around juuust fine.";
            }

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptanceTextToUse, declineTextToUse);
            int selectedResponse = -1;

            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }

            if (selectedResponse == 0)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                base.spriteAnimator.PlayForDuration("do_effect", -1, "talk");
                base.spriteAnimator.Play("talk");
                if (interactor.carriedConsumables.Currency >= (20 * PriceMult))
                {
                    TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "Enjoy the fruits of my knowledge!", interactor.characterAudioSpeechTag, instant: false);
                    OnAccept?.Invoke(interactor, this.gameObject);
                    hasBeenUsedThisRun = true;
                }
                else
                {
                    TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "Oh... looks like you don't have the cash. Welp, research ain't free.", interactor.characterAudioSpeechTag, instant: false);
                }
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                OnDecline?.Invoke(interactor, this.gameObject);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "Harumph, enjoy being lost...", interactor.characterAudioSpeechTag, instant: false);
                hasDeclinedAlreadyThisRun = true;
                TextBoxManager.ClearTextBox(this.talkPoint);
            }

            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1, 0.25f);
            base.spriteAnimator.Play("idle");
        }
        private IEnumerator HandleGungeonBlueprintConvo(PlayerController interactor)
        {
            SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
            base.spriteAnimator.PlayForDuration("talk_start", 1, "talk");
            interactor.SetInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f);
            yield return(null);

            //Determine Dialogue
            var conversationToUse = new List <string>()
            {
                "Wait... is that?",
                "...no, it can't be...",
                "...but it is!",
                "THE GUNGEON BLUEPRINT!",
                "Please, you simply must give it to me! I need to have it, it is the pinnacle of my craft!",
                "I'll give you 150 in cash for it, mark my words!"
            };
            int conversationIndex = 0;

            while (conversationIndex < conversationToUse.Count - 1)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationIndex], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);
                float timer = 0;
                while (!BraveInput.GetInstanceForPlayer(interactor.PlayerIDX).ActiveActions.GetActionFromType(GungeonActions.GungeonActionType.Interact).WasPressed || timer < 0.4f)
                {
                    timer += BraveTime.DeltaTime;
                    yield return(null);
                }
                conversationIndex++;
            }
            TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationToUse.Count - 1], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);


            var acceptanceTextToUse = "It's yours! <Give Gungeon Blueprint>";
            var declineTextToUse    = "I think I'll hold onto it.";

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptanceTextToUse, declineTextToUse);
            int selectedResponse = -1;

            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }

            if (selectedResponse == 0)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                base.spriteAnimator.PlayForDuration("do_effect", -1, "talk");
                base.spriteAnimator.Play("talk");

                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "Thank you! The money, as promised, is yours!", interactor.characterAudioSpeechTag, instant: false);

                interactor.RemovePassiveItem(281);
                int num = interactor.passiveItems.FindIndex((PassiveItem p) => p.PickupObjectId == 281);
                if (num >= 0)
                {
                    interactor.RemovePassiveItemAtIndex(num);
                }

                hasBeenUsedThisRun = true;
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(74).gameObject, interactor);
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(74).gameObject, interactor);
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "You break my heart, you ignoble batterlacklamain!", interactor.characterAudioSpeechTag, instant: false);
                hasBeenUsedThisRun = true;
                TextBoxManager.ClearTextBox(this.talkPoint);
            }

            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1, 0.25f);
            base.spriteAnimator.Play("idle");
        }
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            // Show text and lock player in place
            TextBoxManager.ShowStoneTablet(this.talkPoint.position, this.talkPoint, -1f, text, true, false);
            int selectedResponse = -1;

            interactor.SetInputOverride("shrineConversation");
            yield return(null);

            // Wait for player response
            if (!m_canUse)
            {
                GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, declineText, string.Empty);
            }
            else if (isToggle)
            {
                if (m_isToggled)
                {
                    GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, declineText, string.Empty);
                }
                else
                {
                    GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptText, string.Empty);
                }
            }
            else
            {
                GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptText, declineText);
            }


            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }

            // Free player and run OnAccept/OnDecline actions
            interactor.ClearInputOverride("shrineConversation");
            TextBoxManager.ClearTextBox(this.talkPoint);
            if (!m_canUse)
            {
                yield break;
            }

            if (selectedResponse == 0 && isToggle)
            {
                (m_isToggled ? OnDecline : OnAccept)?.Invoke(interactor, this.gameObject);
                m_isToggled = !m_isToggled;
                yield break;
            }

            if (selectedResponse == 0)
            {
                OnAccept?.Invoke(interactor, this.gameObject);
            }
            else
            {
                OnDecline?.Invoke(interactor, this.gameObject);
            }
            yield break;
        }
Example #16
0
        private IEnumerator HandleConversation(PlayerController interactor)
        {
            //ETGModConsole.Log("HandleConversation Started");
            SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
            base.spriteAnimator.PlayForDuration("talk_start", 1, "talk");
            interactor.SetInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.25f);
            yield return(null);

            var conversationToUse = AllJammedState.AllJammedActive ? conversation2 : conversation;
            int conversationIndex = 0;

            //ETGModConsole.Log("We made it to the while loop");
            while (conversationIndex < conversationToUse.Count - 1)
            {
                Tools.Print($"Index: {conversationIndex}");
                TextBoxManager.ClearTextBox(this.talkPoint);
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationIndex], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);
                float timer = 0;
                while (!BraveInput.GetInstanceForPlayer(interactor.PlayerIDX).ActiveActions.GetActionFromType(GungeonActions.GungeonActionType.Interact).WasPressed || timer < 0.4f)
                {
                    timer += BraveTime.DeltaTime;
                    yield return(null);
                }
                conversationIndex++;
            }
            //ETGModConsole.Log("We made it through the while loop");
            m_allowMeToIntroduceMyself = false;
            TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, -1f, conversationToUse[conversationToUse.Count - 1], interactor.characterAudioSpeechTag, instant: false, showContinueText: true);

            var acceptanceTextToUse = AllJammedState.AllJammedActive ? acceptText2 : acceptText;
            var declineTextToUse    = AllJammedState.AllJammedActive ? declineText2 : declineText;

            GameUIRoot.Instance.DisplayPlayerConversationOptions(interactor, null, acceptanceTextToUse, declineTextToUse);
            int selectedResponse = -1;

            while (!GameUIRoot.Instance.GetPlayerConversationResponse(out selectedResponse))
            {
                yield return(null);
            }
            //ETGModConsole.Log("We made it to the if statement");
            if (selectedResponse == 0)
            {
                TextBoxManager.ClearTextBox(this.talkPoint);
                base.spriteAnimator.PlayForDuration("do_effect", -1, "talk");
                OnAccept?.Invoke(interactor, this.gameObject);
                base.spriteAnimator.Play("talk");
                TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 1f, "It is done...", interactor.characterAudioSpeechTag, instant: false);
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                OnDecline?.Invoke(interactor, this.gameObject);
                TextBoxManager.ClearTextBox(this.talkPoint);
            }
            //ETGModConsole.Log("We made it through the if statement");

            // Free player and run OnAccept/OnDecline actions
            interactor.ClearInputOverride("npcConversation");
            Pixelator.Instance.LerpToLetterbox(1, 0.25f);
            base.spriteAnimator.Play("idle");
            //ETGModConsole.Log("We made it");
        }