Esempio n. 1
0
        public void StartDialogue(DialogueMessage dialogue)
        {
            //Debug.Log("Start Dialogue " + dialogue_index);
            current_message = dialogue;
            current_actor = dialogue.actor;
            interact_timer = 0f;

            Sprite portrait = default_portrait;
            Sprite portrait_zoom = default_portrait_zoomed;
            string title = "";
            CinematicActorPortrait zoom_portrait = null;
            int side = 1;
            bool flipped = false;
            
            if (current_actor != null)
            {
                portrait = current_actor.portrait;
                portrait_zoom = current_actor.portrait_zoomed;
                zoom_portrait = current_actor.GetPortrait();
                title = current_actor.title;
                side = current_message.side != 0 ? current_message.side : (current_actor.is_player ? -1 : 1);
                flipped = side >= 1;
                talk_bubble_inst.SetActive(true);
            }

            bool display_dialogue = (current_actor != null);
            if (current_event.zoomed_in)
            {
                if (display_dialogue)
                {
                    DialogueZoomPanel.Get().SetDialogue(title, portrait_zoom, zoom_portrait, current_message.text, side, "", flipped);
                    DialogueZoomPanel.Get().Show();
                    //TheGame.Instance.LockGameplay();
                }
            }
            else
            {
                DialoguePanel.Get().Set(portrait, title, current_message.text);
                DialoguePanel.Get().Show();
            }

            if (display_dialogue)
                NarrativeData.Get().AddToHistory(new DialogueMessageData(title, portrait, current_message.text));

            UpdateTalkBubble();
            dialogue_timer = 0f;

            if (audio_source != null && dialogue.voice_clip != null)
                audio_source.PlayOneShot(dialogue.voice_clip, 0.8f);

            if (current_message.OnStart != null)
            {
                current_message.OnStart.Invoke();
            }
        }
Esempio n. 2
0
        void Start()
        {
            choices_list = DialogueChoice.GetAllOf(this);
            events_list  = DialogueEvent.GetAllOf(this);

            if (portrait_zoomed_prefab)
            {
                GameObject portrait = Instantiate(portrait_zoomed_prefab);
                portrait_instance = portrait.GetComponent <CinematicActorPortrait>();
                portrait.SetActive(false);
            }

            if (NarrativeManager.Get() != null)
            {
                GameObject tbtn = Instantiate(NarrativeManager.Get().talk_button_prefab, transform.position, Quaternion.identity);
                tbtn.GetComponent <ButtonDisplayTalk>().actor = this;
            }
        }
Esempio n. 3
0
        public void SetDialogue(string title, Sprite img, CinematicActorPortrait portrait, string text, int side, string anim, bool flipped = false)
        {
            this.title.text = title;
            this.text.text  = "";
            current_text    = text;
            bubble1.SetActive(false);
            bubble2.SetActive(false);
            gameObject.SetActive(true); //Allow starting coroutine

            if (side >= 0)
            {
                if (img != portrait2.sprite || portrait != zoomed_in_portrait2)
                {
                    portrait_group2.anchoredPosition += Vector2.right * 200f;
                }
                if (portrait != zoomed_in_portrait2)
                {
                    HidePortrait2();
                }
                if (zoomed_in_portrait1)
                {
                    zoomed_in_portrait1.PlayDefault();
                }
                zoomed_in_portrait2            = portrait;
                portrait2.sprite               = img;
                portrait2.transform.localScale = flipped ? new Vector3(-1f, 1f, 1f) : new Vector3(1f, 1f, 1f);
                portrait2.color = Color.white;
                portrait1.color = new Color(0.5f, 0.5f, 0.5f, 1f);
                bubble2.SetActive(current_text != "");
            }
            else
            {
                if (img != portrait1.sprite || portrait != zoomed_in_portrait1)
                {
                    portrait_group1.anchoredPosition += Vector2.left * 200f;
                }
                if (portrait != zoomed_in_portrait1)
                {
                    HidePortrait1();
                }
                if (zoomed_in_portrait2)
                {
                    zoomed_in_portrait2.PlayDefault();
                }
                zoomed_in_portrait1            = portrait;
                portrait1.sprite               = img;
                portrait1.transform.localScale = flipped ? new Vector3(-1f, 1f, 1f) : new Vector3(1f, 1f, 1f);
                portrait1.color = Color.white;
                portrait2.color = new Color(0.5f, 0.5f, 0.5f, 1f);
                bubble1.SetActive(current_text != "");
            }

            if (zoomed_in_portrait1)
            {
                zoomed_in_portrait1.Show();
                zoomed_in_portrait1.PlayAnim(anim);
            }
            if (zoomed_in_portrait2)
            {
                zoomed_in_portrait2.Show();
                zoomed_in_portrait2.PlayAnim(anim);
            }

            portrait1.enabled   = portrait1.sprite != null;
            portrait2.enabled   = portrait2.sprite != null;
            text_anim_completed = false;
            text_anim           = StartCoroutine(AnimateText());
        }