Пример #1
0
        /// <summary>
        /// Handling animating windows, fadeing in / out canvas etc.
        /// </summary>
        protected virtual void Update()
        {
            if (IsWorking)
            {
                // Animating text canvases
                AnimateSelectionWindow();
                AnimateReplyWindow();

                // Controlling switching replys etc.
                if (ActiveDialogue != null)
                {
                    ActiveDialogue.DialogueUpdate();

                    if (hidingReply)
                    {
                        if (softAnimationFinished)
                        {
                            if (ActiveDialogue.Replys != null)
                            {
                                if (ActiveReplyIndex >= ActiveDialogue.Replys.Count)
                                {
                                    EndDialogue(AvailableDialogues);
                                }
                                else
                                {
                                    ShowReply();
                                }
                            }
                        }
                    }
                }

                OnWorkingUpdate();

                if (ActiveReply != null)
                {
                    ActiveReply.ReplyUpdate();
                }
            }

            // Controlling main canvas alpha
            if (!IsHiding)
            {
                ConversationUI.MainCanvasG.alpha = Mathf.Lerp(ConversationUI.MainCanvasG.alpha, 1.05f, Time.unscaledDeltaTime * 10f + Time.unscaledDeltaTime * 2f);
            }
            else
            {
                ConversationUI.MainCanvasG.alpha = Mathf.Lerp(ConversationUI.MainCanvasG.alpha, -0.05f, Time.unscaledDeltaTime * 10f + Time.unscaledDeltaTime * 2f);
                if (ConversationUI.MainCanvasG.alpha <= 0f)
                {
                    FinishingHidingConversationSystem();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Viewing reply images and texts
        /// </summary>
        protected virtual void ShowReply()
        {
            ConversationUI.ReplyCanvasG.blocksRaycasts    = true;
            ConversationUI.DialogueCanvasG.blocksRaycasts = false;
            ConversationUI.MainCanvasG.blocksRaycasts     = true;
            hidingReply = false;

            softAnimationFinished = false;

            ConversationUI.ReplyText.text = "";

            string content = "";

            content += ActiveReply.Text;
            ActiveReply.OnReplyStart();

            ConversationUI.ReplyText.text = content;

            SetReplyCameraOrientation();
        }
Пример #3
0
        /// <summary>
        /// Skipping reply to trigger next one
        /// </summary>
        protected virtual void SkipReply(bool hard = false, bool hardSkipAnimation = true)
        {
            SkipAnimation();

            if (!softAnimationFinished)
            {
                return;
            }
            if (hidingReply)
            {
                return;
            }

            ActiveReplyIndex += 1;

            if (ActiveDialogue.Replys.Count > ActiveReplyIndex)
            {
                ActiveReply.OnReplySkip();
                ActiveReply = ActiveDialogue.Replys[ActiveReplyIndex];
            }

            HideReply();

            if (hard)
            {
                SkipAnimation();

                if (ActiveDialogue.Replys.Count > ActiveReplyIndex)
                {
                    ShowReply();
                    if (hardSkipAnimation)
                    {
                        SkipAnimation();
                    }
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Generating and showing dialogue options inside conversation
        /// </summary>
        protected virtual void ShowDialogueOptions(List <FBasic_DialogueBase> dialogues)
        {
            GenerateDialogueOptions(dialogues);

            ConversationUI.DialogueCanvasG.blocksRaycasts = true;
            ConversationUI.ReplyCanvasG.blocksRaycasts    = false;
            ConversationUI.MainCanvasG.blocksRaycasts     = true;

            OnShowDialogueOptions();

            if (ActiveDialogue != null)
            {
                ActiveDialogue.OnDialogueEnd();
            }
            if (ActiveReply != null)
            {
                ActiveReply.OnReplySkip();
            }

            ActiveDialogue = null;
            ActiveReply    = null;

            SetDefaultCameraOrientation();
        }