void UpdateUI(DialogueInfo info) { UITexture tex = null; UITexture texTwo = null; switch (info.Who) { case WhoType.Left: tex = m_tex_leftRole; texTwo = m_tex_rightRole; break; case WhoType.Ritht: tex = m_tex_rightRole; texTwo = m_tex_leftRole; break; default: break; } tex.color = Color.white; tex.mainTexture = Resources.Load <Texture2D>(info.roleImage); tex.MakePixelPerfect(); texTwo.color = Color.gray; m_lbl_name.text = info.name; m_lbl_dialogue.text = info.desc; }
void UpdateDialogue(Stage stage) { try { DialogueInfo info = _dialogues[stage]; _dialogueComponents.OnPanels(info.IsChatPanelVisible, info.IsAvatarVisible, info.IsNextBtnVisible, info.IsAnswer1BtnVisible, info.IsAnswer2Visible, info.IsAnswer3Visible); _dialogueComponents.ChatText.text = null; _textCoroutine = TextCoroutine(info.DialogueText); _dialogueComponents.NameText.text = null; _dialogueComponents.NameText.text = info.NameText; _dialogueComponents.AvatarImage.sprite = Resources.Load <Sprite>(info.AvatarPath); _dialogueComponents.NextButtonText.text = info.NextBtnText; _dialogueComponents.Answer1Text.text = info.Answer1Text; _dialogueComponents.Answer2Text.text = info.Answer2Text; _dialogueComponents.Answer3Text.text = info.Answer3Text; _dialogueComponents.NextDialogueButton.onClick.RemoveAllListeners(); _dialogueComponents.Answer1Button.onClick.RemoveAllListeners(); _dialogueComponents.Answer2Button.onClick.RemoveAllListeners(); _dialogueComponents.Answer3Button.onClick.RemoveAllListeners(); _dialogueComponents.NextDialogueButton.onClick.AddListener(info.NextBtnCallback); _dialogueComponents.Answer1Button.onClick.AddListener(info.Answer1BtnCallback); _dialogueComponents.Answer2Button.onClick.AddListener(info.Answer2BtnCallback); _dialogueComponents.Answer3Button.onClick.AddListener(info.Answer3BtnCallback); } catch (Exception) { print("Oops. Wrong stage"); } }
public void CheckAndShow(DialogueInfo data) { if (data.DialogueTid == 0) { ClosePanel(); return; } Show(); if (m_IsUsing) { if (ServerTimeUtil.Instance.GetNowTime() - m_StartTime >= 3) { return; } SendDialogueCompleted(); UIManager.Instance.StopCoroutine(m_StartFunc); m_IsUsing = false; m_Data = data; //Hide(() => //{ Close(false); //} //); return; } m_Data = data; CreateData(data.DialogueTid, data.SoundParent, data.SoundPoint); StartDialogue(); }
public void StartDialogue(JSONObject d_json) { DialogueInfo d_info = JsonUtility.FromJson <DialogueInfo>(d_json.ToString()); if (d_info.sound != null) { GameManager.instance.audio_source.PlayOneShot(Resources.Load <AudioClip>("Sounds/" + d_info.sound)); } if (d_info.player) { player_name.SetActive(true); SetPlayerName(d_info.name); GameObject model_dialogue = Instantiate(FindPrefab(d_info.name), player_model_position, false); if (d_info.animation != null) { model_dialogue.GetComponent <Animator>().Play(d_info.animation); } } else { npc_name.SetActive(true); SetNPCName(d_info.name); GameObject model_dialogue = Instantiate(FindPrefab(d_info.name), npc_model_position, false); if (d_info.animation != null) { model_dialogue.GetComponent <Animator>().Play(d_info.animation); } } GameManager.instance.ui_opened = true; dialogue.SetActive(true); SetDialogueText(d_info.text, d_info.speed); }
void OnNext(GameObject btn) { if (m_info == null) { return; } switch (m_info.BehaviorType) { case BehaviorType.Say: m_info = ResManager.Instance.dialogueTable.GetById(m_info.nextId); if (m_info != null) { UpdateUI(m_info); } break; case BehaviorType.OpenWindow: WindowManager.ManageWinwodOpen(WindowAction.Open_UICombatReadiness); WindowManager.ManageWinwodClose(gameObject); break; default: break; } }
private void ClosePanel() { m_Data = null; m_IsUsing = false; m_StartTime = 0; GetGameObject().SetActive(false); }
public void RequestDialogue(DialogueInfo info) { dialogueInfos = new List <DialogueInfo>() { info }; TextFadeIn(); }
public void ResetContent(int dialogId) { var info = AVGDataManager.instance.GetDialogueInfoById(dialogId); config = info; ShowDialog(info); // SetOptions(info.type); }
public DialogueInfo GetDialogueInfoById(int id) { DialogueInfo info = null; if (!dialogueInfos.TryGetValue(id, out info)) { info = nullInfo; } return(info); }
public void DelDiaComponent(DialogueInfo config) { AVGDataComponent component = null; if (diaComponentDic.TryGetValue(config.Id, out component)) { diaComponentDic.Remove(config.Id); component.Close(); return; } }
public void InitData() { audio.Stop(); configType = ConfigType.AddNew; idField.interactable = true; requireLove.text = "0"; info = new DialogueInfo(); info.Id = (AVGDataManager.instance.dialogueInfos.Count + 1); RefreshAnimatonDropDown(); RefreshVoiceDropDown(); InitComponentData(); }
public List <string> GetDialogueList(DialogueInfo info) { tmpValuesList.Clear(); tmpValuesList.Add(info.Id.ToString()); tmpValuesList.Add(info.type.ToString()); tmpValuesList.Add(info.love.ToString()); tmpValuesList.Add(info.canRandom.ToString()); tmpValuesList.Add(info.isChatBubble.ToString()); tmpValuesList.Add(info.content); tmpValuesList.Add(OptionIdToString(info.optionIds)); tmpValuesList.Add(info.voice); tmpValuesList.Add(info.animation); return(tmpValuesList); }
public void InitData(DialogueInfo config) { audio.Stop(); configType = ConfigType.Modify; idField.interactable = false; info = new DialogueInfo(); info = config; InitComponentData(); RefreshAnimatonDropDown(); RefreshVoiceDropDown(); SetDropDownData(); SetAniDropDownData(); }
public void DeleteDialogue(DialogueInfo config) { for (int i = 0; i < dialogueList.Count; ++i) { if (config.Id == dialogueList[i].Id) { dialogueInfos.Remove(dialogueList[i].Id); dialogueList.RemoveAt(i); break; } } SaveDialogueToJson(); }
public override void Update(object data) { if (!(data is DialogueInfo)) { return; } DialogueInfo info = (DialogueInfo)data; if (Success != null && info.Equals(dialogueInfo)) { Success(successNode, null); } }
public void AddOrRefreshDiaComponent(DialogueInfo config) { AVGDataComponent component = null; if (diaComponentDic.TryGetValue(config.Id, out component)) { component.Init(AVGDataComponent.AVGComponentType.Dialogue, config); return; } var item = UIManager.instance.CreateComponent <AVGDataComponent>(UINames.AVGDataComponet, dialogScroll); item.Init(AVGDataComponent.AVGComponentType.Dialogue, config); item.callback = OnBtnClickDialogueDetail; diaComponentDic[config.Id] = item; }
public IEnumerator ChangeScene(DialogueInfo info) { this.info = info; if (scene != null) { List <FrameItem> destroyList = new List <FrameItem>(); destroyList.AddRange(scene.GetComponentsInChildren <FrameItem>()); disapearing = true; foreach (var item in destroyList) { item.Hide(); } while (disappearCount < sceneMaxLength) { yield return(null); } SceneCurrentLength = 0; disapearing = false; } disappearCount = 0; scene = dialogueHolder.GetChild(info.section).GetChild(info.scene); List <FrameItem> list = new List <FrameItem>(); list.AddRange(scene.GetComponentsInChildren <FrameItem>()); sceneMaxLength = list.Count; foreach (var item in list) { var im = item.GetComponent <UnityEngine.UI.Image>(); if (im != null) { im.material = new Material(Shader.Find("Ced/FadeSequence")); } item.Show(); } }
public void ShowDialog(DialogueInfo info) { mask.SetActive(true); opNode.SetActive(false); content.text = info.content; textFadeIn.SetText(info.content); optionsInfo.Clear(); for (int i = 0; i < info.optionIds.Count; ++i) { optionsInfo.Add(AVGDataManager.instance.GetOptionById(info.optionIds[i])); } textFadeIn.callback = ShowTextImmediately; GameEngine.instance.miko.PlayAnimator(info.animation); GameEngine.instance.miko.PlayAudio(info.voice, true); }
public void Update(GameTime gameTime) { //TODO: sugalvoti, kaip atskirti kokiai misijai siusti informacija while (explorationMissionData.Count > 0) { Point data = explorationMissionData.Dequeue(); foreach (MissionInstance mission in currentMissions) { if (mission.CurrentMission is ExplorationMission) { mission.Update(data); } } } while (dialogueMissionData.Count > 0) { DialogueInfo data = dialogueMissionData.Dequeue(); foreach (MissionInstance mission in currentMissions) { if (mission.CurrentMission is DialogueMission) { mission.Update(data); } } } while (eliminationMissionData.Count > 0) { int data = eliminationMissionData.Dequeue(); foreach (MissionInstance mission in currentMissions) { if (mission.CurrentMission is EliminationMission) { mission.Update(data); } } } while (missionsToRemove.Count > 0) { uint missionId = missionsToRemove.Dequeue(); RemoveMission(missionId); } }
void Update() { ButtonImage.SetActive(Vector3.Distance(player.transform.position, transform.position) < DistanceToShowButton); if (Input.GetButtonDown("ProgressDialogue") && !DialogueManager.instance.IsActive && ButtonImage.activeSelf) { anim.SetBool("Talking", true); player.Animator.SetBool("Talking", true); DialogueInfo di = new DialogueInfo { StuffToSay = dialogueInfo.AllConversations[TimesTalkedTo].StuffToSay, PlayerFace = dialogueInfo.PlayerFace, PlayerBox = dialogueInfo.PlayerBox, BoxSprite = dialogueInfo.BoxSprite, CharacterFace = dialogueInfo.CharacterFace }; DialogueManager.instance.StartDialogue(di, this); } }
private void OpenChat(MsgMissionInfo info) { if (info.MissionTid != m_MissionVO.Tid) { return; } uint chatid = (uint)m_CfgEternityProxy.GetMissionMainByKey(m_MissionVO.Tid).SubmitDialog; if (chatid != 0) { DialogueInfo msg = new DialogueInfo(); msg.DialogueTid = chatid; msg.SoundParent = m_NpcTransform; GameFacade.Instance.SendNotification(NotificationName.MSG_DIALOGUE_SHOW, msg); } Close(); }
public void SaveDialogue(DialogueInfo config) { for (int i = 0; i < dialogueList.Count; ++i) { if (config.Id == dialogueList[i].Id) { dialogueList[i] = config; dialogueInfos[config.Id] = config; SaveDialogueToJson(); return; } } dialogueList.Add(config); dialogueInfos[config.Id] = config; SaveDialogueToJson(); }
public void Init(AVGComponentType type, object arg) { this.type = type; if (type == AVGComponentType.Dialogue) { var config = (DialogueInfo)arg; id.text = config.Id.ToString(); Content.text = config.content; dialogConfig = config; } else { var config = (OptionInfo)arg; id.text = config.Id.ToString(); Content.text = config.content; optionConfig = config; } }
public void OnMissionChange(object sender, EventArgs args) { if (!(sender is MissionInstance)) { return; } MissionInstance mission = (MissionInstance)sender; DialogueInfo dialogueInfo = mission.CurrentMission.NewDialogueOption; if (dialogueInfo != null) { IChattable npc = EntityService.GetInstance().GetNpcById(dialogueInfo.NpcId); DialogueManager.GetInstance().AssignNewDialogue(dialogueInfo); } NotificationPopup.GetInstance().AddNotification(string.Format("Mission log updated")); hasChanged = true; }
public void StartDialogue(DialogueInfo info, SayStuff ss) { talkingTo = ss; ChangeActivation(true); CurrentDialogue = info; CurrentDialogueIndex = 0; if (info.StuffToSay[0].StartsWith("*")) { DialogueText.text = info.StuffToSay[0].Substring(1); FaceImage.sprite = info.PlayerFace; BoxImage.sprite = info.PlayerBox; } else { DialogueText.text = info.StuffToSay[0]; FaceImage.sprite = info.CharacterFace; BoxImage.sprite = info.BoxSprite; } DialogueJustStarted = true; }
public void OnUpdateEvent(object sender, EventArgs args) { if (sender != null) { if (sender is Point) { Point position = (Point)sender; explorationMissionData.Enqueue(position); } else if (sender is DialogueInfo) { DialogueInfo info = (DialogueInfo)sender; dialogueMissionData.Enqueue(info); } else if (sender is int) { int eliminatedId = (int)sender; eliminationMissionData.Enqueue(eliminatedId); } } }
/// <summary> /// 打开npc对话 /// </summary> public void OpenNpcChat(Npc NpcVO, Transform transform, uint chaTid, uint npcTid, bool sendToServer = false) { if (chaTid == 0) { UnityEngine.Random.InitState((int)DateTime.Now.Ticks); int?dialogue = NpcVO.Function?.Arg2Length; if (dialogue.HasValue && dialogue.Value > 0) { int id = UnityEngine.Random.Range(0, dialogue.Value); chaTid = (uint)NpcVO.Function.Value.Arg2(id); } } DialogueInfo info = new DialogueInfo(); info.DialogueTid = chaTid; info.SoundParent = transform; info.NpcTid = npcTid; info.NeedSendToServer = sendToServer; GameFacade.Instance.SendNotification(NotificationName.MSG_DIALOGUE_SHOW, info); }
public void NextDialogue() { AudioDialogueManager.Instance.StopAllVoices(); m_typewriterEffect.ClearText(); if (m_dialogueBubbleQueue == null) { return; } if (m_dialogueBubbleQueue.Count == 0) { m_panel.gameObject.SetActive(false); if (m_callback != null) { m_callback(); } m_callback = null; return; } DialogueInfo dialogueInfo = m_dialogueBubbleQueue.Dequeue(); transform.position = dialogueInfo.Position; m_dialogueText.text = dialogueInfo.Dialogue; m_typewriterEffect.ShowText(dialogueInfo.Dialogue); if (dialogueInfo.NPCType != NPCType.None) { AudioDialogueManager.Instance.PlayVoiceRandomLine(dialogueInfo.NPCType); } if (dialogueInfo.Callback != null) { dialogueInfo.Callback(); } }
/// <summary> /// 游戏对话加载回调函数 /// </summary> /// <param name="context"></param> public void GameDialogueLoadCallBack(string context) { DialogueInfo d = null; try { d = JsonUtility.FromJson <DialogueInfo>(context); }catch (Exception e) { Debug.LogError(e.Message); } dialogues.Add(1, new List <Dialogue>()); dialogues.Add(2, new List <Dialogue>()); dialogues.Add(3, new List <Dialogue>()); foreach (var t in d.dialogues) { dialogues[t.level].Add(t); //添加所有对话 } for (int i = 1; i <= 3; i++) { //排序 dialogues[i].Sort((x, y) => { if (x.rank < y.rank) { return(-1); } else if (x.rank == y.rank) { return(0); } else { return(1); } }); } }
public void OnInteracted() { MissionProxy missionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; LookAtMainPlayerOnInteraction(); if (m_TeleportId > 0) { //手表升级传送等级限制 if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Type == 5) { //可升级进行传送 PlayerInfoVo player = NetworkManager.Instance.GetPlayerController().GetPlayerInfo(); double exp = m_CfgEternityProxy.GetPlayerUpa(player.WatchLv).Exp; if (player.WatchExp >= exp && exp > 0) { NetworkManager.Instance.GetSceneController().SwitchMap((uint)m_TeleportId); } else { //经验值不足提示 DialogueInfo info = new DialogueInfo(); info.DialogueTid = (uint)(exp > 0 ? 510000 : 510001); info.SoundParent = transform; info.NpcTid = m_NpcTmpVO.Id; info.NeedSendToServer = false; GameFacade.Instance.SendNotification(NotificationName.MSG_DIALOGUE_SHOW, info); SetFocus(true); } } else { //切地图 NetworkManager.Instance.GetSceneController().SwitchMap((uint)m_TeleportId); } } else if (missionProxy.OpenMissionPanel(GetUId(), m_NpcTmpVO, transform)) { SetFocus(true); return; } else if (m_NpcTmpVO.Function.HasValue && !string.IsNullOrEmpty(m_NpcTmpVO.Function.Value.Arg1)) { if (Enum.TryParse(m_NpcTmpVO.Function.Value.Arg1, out UIPanel panelName)) { if (m_NpcTmpVO.Function.Value.Arg3 > 0) { UIManager.Instance.OpenPanel(panelName, m_NpcTmpVO.Function.Value.Arg3); } else { UIManager.Instance.OpenPanel(panelName); } } SetFocus(true); } else if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Type == 4) { NetworkManager.Instance.GetPlayerController().RequestLevelUpWatch(); SetFocus(true); } else if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Arg2Length > 0) { missionProxy.OpenNpcChat(m_NpcTmpVO, transform, 0, m_NpcTmpVO.Id); SetFocus(true); } }