Example #1
0
    /// <summary>
    /// 修改生命值
    /// </summary>
    /// <param name="life"></param>
    public int AddLife(int life)
    {
        characterLife += life;
        if (characterLife <= 0)
        {
            characterLife = 0;
            SetIntent(RascalIntentEnum.Leave);

            long[] shoutIds = teamData.GetShoutIds();
            TextInfoHandler.Instance.manager.GetTextForTalkByMarkId(shoutIds[1], SetTextInfoData);

            //随机获取一句喊话
            if (!CheckUtil.ListIsNull(listShoutTextInfo))
            {
                TextInfoBean textInfo = RandomUtil.GetRandomDataByList(listShoutTextInfo);
                characterShoutCpt.Shout(textInfo.content);
            }
            //快速离开
            characterMoveCpt.SetMoveSpeed(5);
        }
        else if (characterLife > characterMaxLife)
        {
            characterLife = characterMaxLife;
        }
        characterLifeCpt.SetData(characterLife, characterMaxLife);
        return(characterLife);
    }
Example #2
0
    /// <summary>
    /// 开始制造麻烦
    /// </summary>
    /// <returns></returns>
    public IEnumerator CoroutineForStartMakeTrouble()
    {
        while (rascalIntent == RascalIntentEnum.MakeTrouble || rascalIntent == RascalIntentEnum.ContinueMakeTrouble)
        {
            if (isMove)
            {
                movePosition = InnHandler.Instance.GetRandomInnPositon();
                bool canGo = CheckUtil.CheckPath(transform.position, movePosition);
                if (canGo)
                {
                    characterMoveCpt.SetDestination(movePosition);
                }
            }
            //随机获取一句喊话
            //int shoutId = Random.Range(13101, 13106);
            if (!CheckUtil.ListIsNull(listShoutTextInfo))
            {
                TextInfoBean textInfo = RandomUtil.GetRandomDataByList(listShoutTextInfo);
                characterShoutCpt.Shout(textInfo.content);
            }
            yield return(new WaitForSeconds(5));

            //时间到了就离开
            timeMakeTrouble -= 5;
            if (timeMakeTrouble <= 0)
            {
                SetIntent(RascalIntentEnum.Leave);
            }
        }
    }
Example #3
0
    public void UITextSelectResult(TextInfoBean textData, List <CharacterBean> listPickCharacterData)
    {
        if (!CheckUtil.StringIsNull(textData.pre_data_minigame))
        {
            //小游戏初始化
            List <PreTypeForMiniGameBean> listPre    = PreTypeForMiniGameEnumTools.GetListPreData(textData.pre_data_minigame);
            List <RewardTypeBean>         listReward = RewardTypeEnumTools.GetListRewardData(textData.reward_data);
            MiniGameBaseBean miniGameData            = PreTypeForMiniGameEnumTools.GetMiniGameData(null, textData.pre_data_minigame, listPickCharacterData);
            miniGameData.listReward = listReward;
            switch (miniGameData.gameType)
            {
            case MiniGameEnum.Combat:
                MiniGameHandler.Instance.handlerForCombat.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus);
                MiniGameHandler.Instance.handlerForCombat.InitGame((MiniGameCombatBean)miniGameData);
                break;

            case MiniGameEnum.Debate:
                MiniGameHandler.Instance.handlerForDebate.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus);
                MiniGameHandler.Instance.handlerForDebate.InitGame((MiniGameDebateBean)miniGameData);
                break;
            }
            //隐藏重要NPC
            if (NpcHandler.Instance.buildForImportant)
            {
                NpcHandler.Instance.buildForImportant.HideNpc();
            }
            if (NpcHandler.Instance.builderForFamily)
            {
                NpcHandler.Instance.builderForFamily.HideNpc();
            }
        }
        notifyForEvent?.Invoke(NotifyEventTypeEnum.TextSelectResult, new object[] { textData });
    }
Example #4
0
 public void SetData(TextInfoBean textInfo)
 {
     if (tvBehind != null)
     {
         tvBehind.text = uiComponent.SetContentDetails(textInfo.content);
         tvBehind.DOFade(0, textInfo.wait_time).From().OnComplete(delegate
         {
             AddReward(textInfo.reward_data);
             uiComponent.NextText();
         });
     }
 }
Example #5
0
    public void GetTextInfoForTalkByUserIdSuccess(List <TextInfoBean> listData, Action <List <TextInfoBean> > action)
    {
        mapTalkNormalData   = new Dictionary <long, List <TextInfoBean> >();
        mapTalkGiftData     = new Dictionary <long, List <TextInfoBean> >();
        mapTalkRecruitData  = new Dictionary <long, List <TextInfoBean> >();
        mapTalkRascalData   = new Dictionary <long, List <TextInfoBean> >();
        mapTalkExchangeData = new Dictionary <long, List <TextInfoBean> >();
        for (int i = 0; i < listData.Count; i++)
        {
            TextInfoBean itemTalkInfo = listData[i];
            long         markId       = itemTalkInfo.mark_id;
            Dictionary <long, List <TextInfoBean> > addMap = new Dictionary <long, List <TextInfoBean> >();
            switch (itemTalkInfo.GetTextTalkType())
            {
            case TextTalkTypeEnum.Normal:
                addMap = mapTalkNormalData;
                break;

            case TextTalkTypeEnum.Gift:
                addMap = mapTalkGiftData;
                break;

            case TextTalkTypeEnum.Recruit:
                addMap = mapTalkRecruitData;
                break;

            case TextTalkTypeEnum.Rascal:
                addMap = mapTalkRascalData;
                break;

            case TextTalkTypeEnum.Exchange:
                addMap = mapTalkExchangeData;
                break;
            }
            if (addMap.TryGetValue(markId, out List <TextInfoBean> value))
            {
                value.Add(itemTalkInfo);
            }
            else
            {
                List <TextInfoBean> listTemp = new List <TextInfoBean>();
                listTemp.Add(itemTalkInfo);
                addMap.Add(markId, listTemp);
            }
        }
        //action?.Invoke(listData);
    }
Example #6
0
    /// <summary>
    /// 通过ID更新数据
    /// </summary>
    /// <param name="textEnum"></param>
    /// <param name="id"></param>
    /// <param name="textData"></param>
    public void UpdateDataById(TextEnum textEnum, long id, TextInfoBean textData)
    {
        InitTableByTextType(textEnum);
        //先删除旧的数据
        DeleteDataById(textEnum, id);
        //再存储新的
        //插入数据
        if (textData == null)
        {
            return;
        }
        List <string> leftName = new List <string>();

        leftName.Add("name");
        leftName.Add("content");
        leftName.Add("text_id");
        BaseInsertDataWithLeft(textData, leftName);
    }
Example #7
0
    /// <summary>
    /// 协程 扫兴
    /// </summary>
    /// <param name="time"></param>
    /// <returns></returns>
    protected IEnumerator CoroutineForDisappointed(float time)
    {
        while (convertIntent == ConvertIntentEnum.Disappointed)
        {
            if (!CheckUtil.ListIsNull(listShoutTextInfo))
            {
                TextInfoBean textInfo = RandomUtil.GetRandomDataByList(listShoutTextInfo);
                characterShoutCpt.Shout(textInfo.content);
            }
            float intervalTime = Random.Range(3f, 5f);
            yield return(new WaitForSeconds(intervalTime));

            time -= intervalTime;
            if (time <= 0)
            {
                SetIntent(ConvertIntentEnum.Idle);
                SetIntent(SundryIntentEnum.Leave);
            }
        }
    }
Example #8
0
    /// <summary>
    /// 展示文本数据
    /// </summary>
    /// <param name="textData"></param>
    public void ShowText(List <TextInfoBean> textListData)
    {
        if (CheckUtil.ListIsNull(textListData))
        {
            LogUtil.LogWarning("没有查询到相应文本对话数据");
            return;
        }
        currentTextData = textListData[0];
        uiForTalk.Close();
        uiForBook.Close();
        uiForBehind.Close();

        //时停选择 特殊处理
        if (currentTextData.is_stoptime == 1)
        {
            //设置时间彻底停止计时
            GameTimeHandler.Instance.SetTimeStop();
        }
        switch (currentTextData.GetTextType())
        {
        //对话和选择对话
        case TextInfoTypeEnum.Normal:
        case TextInfoTypeEnum.Select:
        case TextInfoTypeEnum.Talk:
            uiForTalk.Open();
            uiForTalk.SetData(currentTextData, textListData);
            break;

        case TextInfoTypeEnum.Book:
            //书本详情
            uiForBook.Open();
            uiForBook.SetData(currentTextData);
            break;

        case TextInfoTypeEnum.Behind:
            //黑幕
            uiForBehind.Open();
            uiForBehind.SetData(currentTextData);
            break;
        }
    }
Example #9
0
    /// <summary>
    /// 文本选择
    /// </summary>
    /// <param name="textData"></param>
    public void SelectText(TextInfoBean textData)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        switch (mTextEnum)
        {
        case TextEnum.Look:
        case TextEnum.Story:
            NextText(textData.next_order);
            break;

        case TextEnum.Talk:
            //不同的对话选项
            //对话
            //如果是对话选项
            if (textData.GetTextType() == TextInfoTypeEnum.Talk)
            {
                if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99102)))
                {
                    //对话
                    TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkNormalData);
                    NextText(1);
                    //增加好感
                    if (GameCommonInfo.DailyLimitData.AddTalkNpc(mTalkNpcInfo.id))
                    {
                        gameData.GetCharacterFavorability(mTalkNpcInfo.id).AddFavorability(1);
                    }
                    //增加数据记录
                    CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(mTalkNpcInfo.id);
                    characterFavorability.AddTalkNumber(1);
                }
                //退出
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99103)))
                {
                    NextText();
                }
                //招募
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99104)))
                {
                    if (gameData.CheckIsMaxWorker())
                    {
                        ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1051));
                    }
                    else
                    {
                        TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkRecruitData);
                        NextText(1);
                    }
                }
                //送礼
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99105)))
                {
                    DialogBean             dialogData         = new DialogBean();
                    PickForItemsDialogView pickForItemsDialog = DialogHandler.Instance.CreateDialog <PickForItemsDialogView>(DialogEnum.PickForItems, this, dialogData);
                    pickForItemsDialog.SetData(null, ItemsSelectionDialogView.SelectionTypeEnum.Gift);
                }
                //换取公会勋章
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99201)))
                {
                    //对话
                    TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData);
                    NextText(1);
                }
                //换取奖杯
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99202)))
                {
                    //对话
                    TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData);
                    NextText(1);
                }
                //换取装备
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99203)))
                {
                    //对话
                    TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData);
                    NextText(1);
                }
                //换取道具
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99204)))
                {
                    //对话
                    TextInfoHandler.Instance.manager.listTextData = RandomUtil.GetRandomDataByDictionary(TextInfoHandler.Instance.manager.mapTalkExchangeData);
                    NextText(1);
                }
                //求婚
                else if (textData.content.Equals(TextHandler.Instance.manager.GetTextById(99205)))
                {
                    gameData.CheckHasItems(99900021, out bool hasItems, out long number);
                    //判断是否有信物
                    if (hasItems)
                    {
                        DialogBean dialogData = new DialogBean();
                        dialogData.content = string.Format(TextHandler.Instance.manager.GetTextById(3121), mTalkNpcInfo.name);
                        DialogHandler.Instance.CreateDialog <DialogView>(DialogEnum.Normal, this, dialogData);
                        NextText(textData.next_order);
                    }
                    else
                    {
                        ItemsInfoBean itemsInfo = GameItemsHandler.Instance.manager.GetItemsById(99900021);
                        ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(5023), itemsInfo.name, "1"));
                    }
                }
            }
            else
            {
                NextText(textData.next_order);
            }
            break;
        }
    }
Example #10
0
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="itemData"></param>
 public void SetData(TextInfoBean itemData)
 {
     this.textData = itemData;
     SetText(itemData.content);
 }
Example #11
0
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="bookName"></param>
 /// <param name="bookContent"></param>
 public void SetData(TextInfoBean textInfo)
 {
     SetBookName(textInfo.name);
     SetBookContent(textInfo.content);
     AddReward(textInfo.reward_data);
 }
Example #12
0
    /// <summary>
    /// NPC 对话ITEM
    /// </summary>
    /// <param name="textInfoService"></param>
    /// <param name="markId"></param>
    /// <param name="listTextData"></param>
    public static void GUINpcTextInfoItemForMarkId(TextInfoService textInfoService,
                                                   long userId, TextTalkTypeEnum talkType, long markId, List <TextInfoBean> listTextData,
                                                   out List <TextInfoBean> outListTextData)
    {
        GUILayout.Space(20);
        GUILayout.BeginHorizontal();
        GUILayout.Label("markId:" + markId, GUILayout.Width(150), GUILayout.Height(20));
        if (listTextData.Count > 0)
        {
            GUILayout.Label("对话类型:", GUILayout.Width(120), GUILayout.Height(20));
            listTextData[0].talk_type = (int)(TextTalkTypeEnum)EditorGUILayout.EnumPopup((TextTalkTypeEnum)listTextData[0].talk_type, GUILayout.Width(100), GUILayout.Height(20));
            GUILayout.Label("条件-好感对话:", GUILayout.Width(120), GUILayout.Height(20));
            listTextData[0].condition_min_favorability = int.Parse(EditorGUILayout.TextArea(listTextData[0].condition_min_favorability + "", GUILayout.Width(50), GUILayout.Height(20)));
        }
        if (listTextData != null)
        {
            foreach (TextInfoBean itemTalkInfo in listTextData)
            {
                itemTalkInfo.talk_type = listTextData[0].talk_type;
                itemTalkInfo.condition_min_favorability = listTextData[0].condition_min_favorability;
            }
        }
        if (GUILayout.Button("添加对话", GUILayout.Width(120), GUILayout.Height(20)))
        {
            TextInfoBean addText = new TextInfoBean();
            addText.mark_id    = markId;
            addText.id         = addText.mark_id * 1000 + (listTextData.Count + 1);
            addText.text_id    = addText.id;
            addText.user_id    = listTextData.Count > 0 ? listTextData[0].user_id : userId;
            addText.valid      = 1;
            addText.text_order = 1;
            addText.talk_type  = listTextData.Count > 0 ? listTextData[0].talk_type : (int)talkType;
            listTextData.Add(addText);
        }
        if (GUILayout.Button("保存当前所有对话", GUILayout.Width(120), GUILayout.Height(20)))
        {
            foreach (TextInfoBean itemTalkInfo in listTextData)
            {
                textInfoService.UpdateDataById(TextEnum.Talk, itemTalkInfo.id, itemTalkInfo);
            }
        }
        GUILayout.EndHorizontal();
        TextInfoBean removeTalkInfo = null;

        foreach (TextInfoBean itemTalkInfo in listTextData)
        {
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("更新", GUILayout.Width(120), GUILayout.Height(20)))
            {
                textInfoService.UpdateDataById(TextEnum.Talk, itemTalkInfo.id, itemTalkInfo);
            }
            if (GUILayout.Button("删除对话", GUILayout.Width(120), GUILayout.Height(20)))
            {
                removeTalkInfo = itemTalkInfo;
                textInfoService.DeleteDataById(TextEnum.Talk, itemTalkInfo.id);
            }
            GUILayout.Label("talkId:", GUILayout.Width(100), GUILayout.Height(20));
            itemTalkInfo.id      = long.Parse(EditorGUILayout.TextArea(itemTalkInfo.id + "", GUILayout.Width(150), GUILayout.Height(20)));
            itemTalkInfo.text_id = itemTalkInfo.id;
            GUILayout.Label("对话顺序:", GUILayout.Width(100), GUILayout.Height(20));
            itemTalkInfo.text_order = int.Parse(EditorGUILayout.TextArea(itemTalkInfo.text_order + "", GUILayout.Width(50), GUILayout.Height(20)));
            GUILayout.Label("说话者ID:", GUILayout.Width(100), GUILayout.Height(20));
            itemTalkInfo.user_id = EditorUI.GUIEditorText(itemTalkInfo.user_id, 150);
            itemTalkInfo.type    = (int)(TextInfoTypeEnum)EditorGUILayout.EnumPopup((TextInfoTypeEnum)itemTalkInfo.type, GUILayout.Width(100), GUILayout.Height(20));
            if (itemTalkInfo.type == (int)TextInfoTypeEnum.Select)
            {
                GUILayout.Label("选择类型:", GUILayout.Width(100), GUILayout.Height(20));
                itemTalkInfo.select_type = int.Parse(EditorGUILayout.TextArea(itemTalkInfo.select_type + "", GUILayout.Width(50), GUILayout.Height(20)));
            }
            else
            {
                if (itemTalkInfo.type == (int)TextInfoTypeEnum.Behind)
                {
                    GUILayout.Label("黑屏时间:", GUILayout.Width(100), GUILayout.Height(20));
                    itemTalkInfo.wait_time = EditorUI.GUIEditorText(itemTalkInfo.wait_time, 50);
                }
                GUILayout.Label("增加的好感:", GUILayout.Width(100), GUILayout.Height(20));
                itemTalkInfo.add_favorability = int.Parse(EditorGUILayout.TextArea(itemTalkInfo.add_favorability + "", GUILayout.Width(50), GUILayout.Height(20)));
            }
            GUILayout.Label("指定下一句对话:", GUILayout.Width(120), GUILayout.Height(20));
            itemTalkInfo.next_order = int.Parse(EditorGUILayout.TextArea(itemTalkInfo.next_order + "", GUILayout.Width(50), GUILayout.Height(20)));
            GUILayout.Label("触发条件-最低好感:", GUILayout.Width(120), GUILayout.Height(20));
            itemTalkInfo.condition_min_favorability = int.Parse(EditorGUILayout.TextArea(itemTalkInfo.condition_min_favorability + "", GUILayout.Width(50), GUILayout.Height(20)));
            GUILayout.Label("预设名字:", GUILayout.Width(100), GUILayout.Height(20));
            itemTalkInfo.name = EditorGUILayout.TextArea(itemTalkInfo.name + "", GUILayout.Width(50), GUILayout.Height(20));
            GUILayout.Label("对话内容:", GUILayout.Width(100), GUILayout.Height(20));
            itemTalkInfo.content     = EditorGUILayout.TextArea(itemTalkInfo.content + "", GUILayout.Width(500), GUILayout.Height(20));
            itemTalkInfo.reward_data = EditorUI.GUIListData <RewardTypeEnum>("奖励", itemTalkInfo.reward_data);
            if (itemTalkInfo.type == (int)TextInfoTypeEnum.Select && itemTalkInfo.select_type == 1)
            {
                itemTalkInfo.pre_data          = EditorUI.GUIListData <PreTypeEnum>("付出", itemTalkInfo.pre_data);
                itemTalkInfo.pre_data_minigame = EditorUI.GUIListData <PreTypeForMiniGameEnum>("小游戏数据", itemTalkInfo.pre_data_minigame);
            }

            if (GUILayout.Button("更新", GUILayout.Width(120), GUILayout.Height(20)))
            {
                textInfoService.UpdateDataById(TextEnum.Talk, itemTalkInfo.id, itemTalkInfo);
            }
            if (GUILayout.Button("删除对话", GUILayout.Width(120), GUILayout.Height(20)))
            {
                removeTalkInfo = itemTalkInfo;
                textInfoService.DeleteDataById(TextEnum.Talk, itemTalkInfo.id);
            }
            GUILayout.EndHorizontal();
        }
        if (removeTalkInfo != null)
        {
            listTextData.Remove(removeTalkInfo);
            removeTalkInfo = null;
        }
        outListTextData = listTextData;
    }
Example #13
0
    protected void UIForStoryInfoDetailsTalk(StoryInfoDetailsBean itemData)
    {
        if (EditorUI.GUIButton("删除", 200, 20))
        {
            storyInfoService.DeleteDetailsDataByIdOrderType(itemData.story_id, itemData.story_order, itemData.type);
            listOrderStoryInfoDetails.Remove(itemData);
        }
        GUILayout.BeginVertical();
        GUILayout.Space(20);
        GUILayout.BeginHorizontal();
        EditorUI.GUIText("对话 ", 120, 20);
        if (EditorUI.GUIButton("添加子对话", 120, 20))
        {
            if (listStoryTextInfo == null)
            {
                listStoryTextInfo = new List <TextInfoBean>();
            }
            TextInfoBean textInfo = new TextInfoBean();
            textInfo.id         = itemData.text_mark_id * 1000 + listStoryTextInfo.Count + 1;
            textInfo.text_id    = textInfo.id;
            textInfo.type       = 0;
            textInfo.mark_id    = itemData.text_mark_id;
            textInfo.user_id    = 0;
            textInfo.text_order = listStoryTextInfo.Count + 1;
            listStoryTextInfo.Add(textInfo);
        }
        if (EditorUI.GUIButton("删除所有对话", 120, 20))
        {
            RemoveStoryInfoDetailsItem(itemData);
            return;
        }
        GUILayout.EndHorizontal();
        if (listStoryTextInfo != null)
        {
            TextInfoBean removeTempText = null;

            foreach (TextInfoBean textInfo in listStoryTextInfo)
            {
                GUILayout.BeginHorizontal();
                if (EditorUI.GUIButton("删除子对话", 120, 20))
                {
                    removeTempText = textInfo;
                    textInfoService.DeleteDataById(TextEnum.Story, textInfo.id);
                }
                if (EditorUI.GUIButton("更新", 120, 20))
                {
                    textInfoService.UpdateDataById(TextEnum.Story, textInfo.id, textInfo);
                }
                EditorUI.GUIText("ID", 50, 20);
                textInfo.id   = EditorUI.GUIEditorText(textInfo.id, 120, 20);
                textInfo.type = (int)EditorUI.GUIEnum <TextInfoTypeEnum>("对话类型", textInfo.type, 300, 20);
                EditorUI.GUIText("对话顺序", 100, 20);
                textInfo.text_order = int.Parse(EditorUI.GUIEditorText(textInfo.text_order + "", 100, 20));
                EditorUI.GUIText("下一对话", 100, 20);
                textInfo.next_order = int.Parse(EditorUI.GUIEditorText(textInfo.next_order + "", 100, 20));
                if (textInfo.type == 0)
                {
                    EditorUI.GUIText("userID", 100, 20);
                    textInfo.user_id = EditorUI.GUIEditorText(textInfo.user_id, 100, 20);
                    EditorUI.GUIText("姓名", 100, 20);
                    NpcInfoBean npcInfo;
                    if (textInfo.user_id == 0)
                    {
                        npcInfo      = new NpcInfoBean();
                        npcInfo.name = "玩家";
                    }
                    else
                    {
                        npcInfo = mapNpcInfo[textInfo.user_id];
                    }
                    EditorUI.GUIText(npcInfo.title_name + "-" + npcInfo.name, 120, 20);
                    EditorUI.GUIText("指定的姓名", 120, 20);
                    textInfo.name = EditorUI.GUIEditorText(textInfo.name, 100, 20);
                }
                else if (textInfo.type == 1)
                {
                    EditorUI.GUIText("select type", 120, 20);
                    textInfo.select_type = int.Parse(EditorUI.GUIEditorText(textInfo.select_type + "", 100, 20));
                    EditorUI.GUIText("分支选择", 120, 20);
                    if (textInfo.select_type == 0)
                    {
                        EditorUI.GUIText("默认对话", 120, 20);
                    }
                    else
                    {
                        EditorUI.GUIText("分支选项 下一句对话ID", 200, 20);
                        textInfo.next_order = int.Parse(EditorUI.GUIEditorText(textInfo.next_order + "", 100, 20));
                    }
                }
                else if (textInfo.type == 5)
                {
                    EditorUI.GUIText("黑幕时间", 120, 20);
                    textInfo.wait_time = float.Parse(EditorUI.GUIEditorText(textInfo.wait_time + "", 100, 20));
                }

                EditorUI.GUIText("对话内容", 120, 20);
                textInfo.content = EditorUI.GUIEditorText(textInfo.content, 400, 20);

                EditorUI.GUIText("增加的好感:", 120, 20);
                textInfo.add_favorability = int.Parse(EditorUI.GUIEditorText(textInfo.add_favorability + "", 50, 20));
                if (EditorUI.GUIButton("更新", 120, 20))
                {
                    textInfoService.UpdateDataById(TextEnum.Story, textInfo.id, textInfo);
                }

                textInfo.reward_data = EditorUI.GUIListData <RewardTypeEnum>("奖励", textInfo.reward_data);
                textInfo.pre_data    = EditorUI.GUIListData <PreTypeEnum>("付出", textInfo.pre_data);
                GUILayout.EndHorizontal();
            }

            if (removeTempText != null)
            {
                listStoryTextInfo.Remove(removeTempText);
            }
        }
        GUILayout.EndVertical();
    }
Example #14
0
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="textData"></param>
    /// <param name="listTextInfo"></param>
    public void SetData(TextInfoBean textData, List <TextInfoBean> listTextInfo)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        //清空选项
        CptUtil.RemoveChildsByName(objSelectContent.transform, "SelectButton", true);
        //清空文本
        tvContent.text = "";
        tvName.text    = "";
        //回到顶部
        scrollRect.verticalNormalizedPosition = 0;
        this.textData = textData;
        //选择对话 特殊处理 增加选择框
        if (textData.GetTextType() == TextInfoTypeEnum.Select ||
            textData.GetTextType() == TextInfoTypeEnum.Talk)
        {
            objNext.gameObject.SetActive(false);
            foreach (TextInfoBean itemData in listTextInfo)
            {
                //提示文本
                if (itemData.select_type == 0)
                {
                    this.textData = itemData;
                }
                // 选项
                else
                {
                    GameObject objSelect = Instantiate(objSelectModel, objSelectContent.transform);
                    objSelect.SetActive(true);
                    ItemGameTextSelectCpt itemCpt = objSelect.GetComponent <ItemGameTextSelectCpt>();
                    itemCpt.SetData(itemData);
                }
            }
        }
        else
        {
            objNext.gameObject.SetActive(true);
            //添加奖励
            AddReward(textData.reward_data);
        }
        //正常文本处理

        //查询角色数据
        CharacterBean characterData;

        if (textData.user_id == 0)
        {
            characterData = gameData.userCharacter;
        }
        else
        {
            characterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(textData.user_id);
        }
        if (characterData == null)
        {
            LogUtil.LogError("文本展示没有找到该文本发起者");
            return;
        }
        //名字设置
        SetName(characterData.baseInfo.titleName, characterData.baseInfo.name, textData.name);
        //设置角色形象
        SetCharacterUI(characterData);
        //设置正文内容
        SetContent(textData.content);
        //添加好感度
        AddFavorability(textData.user_id, textData.add_favorability);
        //场景人物表情展示
        ShowSceneExpression(textData.scene_expression);
    }