Exemplo n.º 1
0
    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");
        }
    }
Exemplo n.º 3
0
    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();
    }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
    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;
        }
    }
Exemplo n.º 6
0
 private void ClosePanel()
 {
     m_Data      = null;
     m_IsUsing   = false;
     m_StartTime = 0;
     GetGameObject().SetActive(false);
 }
Exemplo n.º 7
0
 public void RequestDialogue(DialogueInfo info)
 {
     dialogueInfos = new List <DialogueInfo>()
     {
         info
     };
     TextFadeIn();
 }
Exemplo n.º 8
0
    public void ResetContent(int dialogId)
    {
        var info = AVGDataManager.instance.GetDialogueInfoById(dialogId);

        config = info;
        ShowDialog(info);
        // SetOptions(info.type);
    }
Exemplo n.º 9
0
    public DialogueInfo GetDialogueInfoById(int id)
    {
        DialogueInfo info = null;

        if (!dialogueInfos.TryGetValue(id, out info))
        {
            info = nullInfo;
        }

        return(info);
    }
Exemplo n.º 10
0
    public void DelDiaComponent(DialogueInfo config)
    {
        AVGDataComponent component = null;

        if (diaComponentDic.TryGetValue(config.Id, out component))
        {
            diaComponentDic.Remove(config.Id);
            component.Close();
            return;
        }
    }
Exemplo n.º 11
0
    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();
    }
Exemplo n.º 12
0
 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);
 }
Exemplo n.º 13
0
    public void InitData(DialogueInfo config)
    {
        audio.Stop();

        configType = ConfigType.Modify;

        idField.interactable = false;
        info = new DialogueInfo();
        info = config;
        InitComponentData();
        RefreshAnimatonDropDown();
        RefreshVoiceDropDown();
        SetDropDownData();
        SetAniDropDownData();
    }
Exemplo n.º 14
0
    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();
    }
Exemplo n.º 15
0
        public override void Update(object data)
        {
            if (!(data is DialogueInfo))
            {
                return;
            }

            DialogueInfo info = (DialogueInfo)data;

            if (Success != null &&
                info.Equals(dialogueInfo))
            {
                Success(successNode, null);
            }
        }
Exemplo n.º 16
0
    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;
    }
Exemplo n.º 17
0
    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();
        }
    }
Exemplo n.º 18
0
    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);
    }
Exemplo n.º 19
0
        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);
            }
        }
Exemplo n.º 20
0
 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);
     }
 }
Exemplo n.º 21
0
    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();
    }
Exemplo n.º 22
0
    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();
    }
Exemplo n.º 23
0
 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;
     }
 }
Exemplo n.º 24
0
        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;
 }
Exemplo n.º 26
0
 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);
         }
     }
 }
Exemplo n.º 27
0
    /// <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);
    }
Exemplo n.º 28
0
    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();
        }
    }
Exemplo n.º 29
0
    /// <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);
                                          } });
        }
    }
Exemplo n.º 30
0
    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);
        }
    }