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(); } }
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; } }
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()); }