Exemplo n.º 1
0
 public override void ManualUpdate()
 {
     if (PlotMgr != null && PlotMgr.IsInPlotPause())
     {
         return;
     }
     if (clearBuff.Count > 0)
     {
         clearBuff.Clear();
     }
     foreach (var item in UpdateData)
     {
         var temp = item;
         for (int i = 0; i < temp.Layer; ++i)
         {
             temp[i].OnUpdate();
             if (temp[i].IsTimeOver)
             {
                 clearBuff.Add(temp[i]);
             }
         }
     }
     foreach (var item in clearBuff)
     {
         Remove(item);
     }
 }
Exemplo n.º 2
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);
 }
Exemplo n.º 3
0
 /// <summary>
 /// 开始一段旁白
 /// isPause=暂停
 /// isUnPauseOnEndTalk=对话结束后取消暂停
 /// </summary>
 /// <param name="id"></param>
 public virtual NarrationFragment Start(string id)
 {
     CurData = TDLuaMgr.Get <TData>(id);
     if (CurData == null)
     {
         CLog.Error($"没有找到这个Plot:{id}");
         return(null);
     }
     //如果剧情只显示一次,则返回
     if (CurData.IsShowOnce && Showed.Contains(id))
     {
         return(null);
     }
     CurNarrationIndex = 0;
     if (IsHave())
     {
         Showed.Add(id);
         var ret = CurData.Fragments[CurNarrationIndex];
         Callback_OnStartNarration?.Invoke(CurData, ret);
         Callback_OnChangeNarration?.Invoke(CurData);
         IsStartNarration = true;
         if (!PauseFlag)
         {
             BattleMgr.LockBattleStartFlow(true);
             PlotMgr?.SetPlotPause(true);
         }
         PauseFlag = true;
         return(ret);
     }
     return(null);
 }
Exemplo n.º 4
0
        public virtual void Stop()
        {
            var ret = CurNarrationFragment();

            IsStartNarration = false;
            Callback_OnEndNarration?.Invoke(CurData, ret);
            Callback_OnChangeNarration?.Invoke(CurData);
            if (IsStartNarration)
            {
                return;
            }
            if (PauseFlag)
            {
                BattleMgr.LockBattleStartFlow(false);
                PlotMgr?.SetPlotPause(false);
            }
            //重置状态
            PauseFlag = false;
        }
Exemplo n.º 5
0
 public virtual void Stop()
 {
     if (CurData != null)
     {
         IsStartTalk = false;
         //回调里面可能会重新开启对话
         Callback_OnEnd?.Invoke(CurData, CurSelectOption, CurSelectOptionIndex);
         OnEndTalk(CurData, CurSelectOption, CurSelectOptionIndex);
         if (IsStartTalk)
         {
             return;
         }
         if (PauseFlag)
         {
             PlotMgr.SetPlotPause(false);
         }
         CurData   = null;
         PauseFlag = false;
     }
 }
Exemplo n.º 6
0
 public virtual bool IsCanEndTurn(T unit)
 {
     if (PlotMgr != null && PlotMgr.IsInPlotPause())
     {
         return(false);
     }
     if (IsLockTurnState.IsIn())
     {
         return(false);
     }
     if (IsInEndTurn)
     {
         return(false);
     }
     if (!IsInTurn(unit))
     {
         return(false);
     }
     if (CheckMustProcess(unit))
     {
         return(false);
     }
     return(!IsPause);
 }