protected override EBTStatus Execute() { if (FindJudgeTrans() == false) { return(EBTStatus.BT_FAILURE); } List <Actor> list = Owner.GetActorsByAffectType(Affect); List <Actor> hits = new List <Actor>(); for (int i = 0; i < list.Count; i++) { Actor actor = list[i]; if (Scope.IsTouch(actor)) { mCurCount++; hits.Add(actor); } if (CheckHitLimit()) { break; } } if (hits.Count > 0) { BTTreeManager.Instance.SaveData(this, Define.BT_JUDGE_LIST, hits); BTTreeManager.Instance.SaveData(this, Define.BT_JUDGE_SUCCESS, string.Empty); if (mChildren.Count > 0) { BTNode pNode = mChildren[0]; pNode.Step(); } } if (LifeTime > 0) { return(CheckHitLimit() ? EBTStatus.BT_SUCCESS : EBTStatus.BT_RUNNING); } else { return(mCurCount > 0 ? EBTStatus.BT_SUCCESS : EBTStatus.BT_FAILURE); } }
protected override BTStatus Execute() { if (FindJudgeTrans() == false) { return(BTStatus.Failure); } List <ActorBase> list = Owner.GetActorsByAffectType(Affect); List <ActorBase> hits = new List <ActorBase>(); for (int i = 0; i < list.Count; i++) { ActorBase actor = list[i]; if (Scope.IsTouch(actor)) { mCurCount++; hits.Add(actor); } if (CheckHitLimit()) { break; } } if (hits.Count > 0) { GameEntry.BT.SaveData(this, Constant.Define.BTJudgeList, hits); GameEntry.BT.SaveData(this, Constant.Define.BTJudgeSuccess, string.Empty); if (m_Children.Count > 0) { BTNode pNode = m_Children[0]; pNode.Step(); } } if (LifeTime > 0) { return(CheckHitLimit() ? BTStatus.Success : BTStatus.Running); } else { return(mCurCount > 0 ? BTStatus.Success : BTStatus.Failure); } }