Beispiel #1
0
 public virtual TalkFragment Start(string id, int index = 0)
 {
     CurData = Table.Find(id);
     if (CurData == null)
     {
         CLog.Error("没有找到对话:{0}", id);
         return(null);
     }
     CurTalkIndex         = index;
     CurSelectOption      = BaseConstMgr.STR_Inv;
     CurSelectOptionIndex = -1;
     if (IsHave())
     {
         var ret = CurData.Fragments[CurTalkIndex];
         Callback_OnStartTalk?.Invoke(CurData, ret);
         Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex);
         OnTalk(CurData, ret, CurTalkIndex);
         OnStartTalk(CurData, ret);
         IsStartTalk = true;
         if (!PauseFlag)
         {
             SelfBaseGlobal.PlotMgr.EnablePlotMode(true);
         }
         PauseFlag = true;
         return(ret);
     }
     return(null);
 }
Beispiel #2
0
 /// <summary>
 /// 下一段对话
 /// </summary>
 public virtual TalkFragment Next()
 {
     if (IsLockNextTalk)
     {
         return(null);
     }
     if (!IsStartTalk)
     {
         return(null);
     }
     if (IsInOption() && CurSelectOption.IsInvStr())
     {
         return(CurTalkFragment());
     }
     CurTalkIndex++;
     if (IsHave())
     {
         var ret = CurTalkFragment();
         Callback_OnNextTalk?.Invoke(CurData, ret, CurTalkIndex);
         Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex);
         OnTalk(CurData, ret, CurTalkIndex);
         return(ret);
     }
     else
     {
         Stop();
         return(null);
     }
 }
Beispiel #3
0
 public virtual TDBaseTalkFragment Start(string id, int index = 0)
 {
     CurData = TDLuaMgr.Get <TData>(id);
     if (CurData == null)
     {
         CLog.Error("没有找到对话:{0}", id);
         return(null);
     }
     CurTalkIndex         = index;
     CurSelectOption      = Const.STR_Inv;
     CurSelectOptionIndex = -1;
     if (IsHave())
     {
         var ret = CurData.Fragments[CurTalkIndex];
         Callback_OnStart?.Invoke(CurData, ret);
         Callback_OnTalk?.Invoke(CurData, ret, CurTalkIndex);
         OnTalk(CurData, ret, CurTalkIndex);
         OnStartTalk(CurData, ret);
         IsStartTalk = true;
         if (!PauseFlag)
         {
             PlotMgr.SetPlotPause(true);
         }
         PauseFlag = true;
         return(ret);
     }
     return(null);
 }