示例#1
0
        private void CompleteElements(ActionObj element, bool undo)
        {
            lockQueue.Remove(element);
            var active = lockQueue.Find(x => x.Name == element.Name);

            if (active == null)
            {
                for (int i = 0; i < elementPool.Count; i++)
                {
                    if (log)
                    {
                        Debug.Log("CompleteElements:" + element.Name + elementPool[i].Active);
                    }

                    if (elementPool[i].Active)
                    {
                        if (undo)
                        {
                            elementPool[i].StepUnDo();
                        }
                        else
                        {
                            elementPool[i].StepComplete();
                        }
                    }
                }
            }
        }
示例#2
0
        public void OnUpdate()
        {
            if (!_IsWorking)
            {
                if (nodes.Count == 0)
                {
                    return;
                }
                if (headNode == null)
                {
                    headNode = nodes[0];
                }
                switch (headNode.Working)
                {
                case 1:
                    nodes.RemoveAt(0);
                    headNode.StartWorking();
                    break;

                case 3:
                    headNode = nodes.Count > 0 ? nodes[0] : null;
                    OnUpdate();
                    break;
                }
            }
        }
示例#3
0
 protected virtual void Awake()
 {
     actionObj = gameObject.GetComponent <ActionObj>();
     actionObj.onStartExecute.AddListener(OnBeforeActive);
     actionObj.onBeforeComplete.AddListener(OnBeforeComplete);
     actionObj.onUnDoExecute.AddListener(OnBeforeUnDo);
 }
示例#4
0
 /// <summary>
 /// 点击NPC处理路牌相关(路牌是NPC的一种类型)
 /// </summary>
 private void ClickNPC_Street()
 {
     if (ActionObj != null)
     {
         playerState.StreetID = ClickInteractiveNPCID;
         IGameState iGameState = GameState.Instance.GetEntity <IGameState>();
         playerState.StreetScene = iGameState.SceneName;
         ActionObj.SetActive(true);
     }
 }
示例#5
0
        private void ActiveElements(ActionObj element)
        {
            var actived = lockQueue.Find(x => x.Name == element.Name);

            if (actived == null)
            {
                for (int i = 0; i < elementPool.Count; i++)
                {
                    if (log)
                    {
                        Debug.Log("ActiveElements:" + element.Name + (!elementPool[i].Active && !elementPool[i].HaveBinding));
                    }

                    if (!elementPool[i].Active && !elementPool[i].HaveBinding)
                    {
                        elementPool[i].StepActive();
                    }
                }
            }
            lockQueue.Add(element);
        }
示例#6
0
 public void Dispose()
 {
     headNode = null;
     nodes.Clear();
 }