Beispiel #1
0
        protected override void onExit(TBTWorkingData wData, int runningStatus)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            UGuideWidget widget0 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, 0);

            if (widget0 != null)
            {
                widget0.Hide();
            }

            UGuideWidget widget1 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, 1);

            if (widget1 != null)
            {
                widget1.Hide();
            }

            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_PLAYERBUTTONFRAME, WndMsgID.WND_MSG_PLAYERBUTTONFRAME_WARHALLBUTTON_REMOVEGUIDEWIDGET,
                                                   new UGuideWidgetMsgData((int)gData.GuideCurrentNode, 0, m_nEffectID));
            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_WAR_MAIN_FRAME, WndMsgID.WND_MSG_WAR_MAIN_GAMEMODEBTN_REMOVEGUIDEWIDGET,
                                                   new UGuideWidgetMsgData((int)gData.GuideCurrentNode, 1, m_nEffectID, _oUserData: m_nGameModeID));

            base.onExit(wData, runningStatus);
        }
Beispiel #2
0
        protected override int onExecute(TBTWorkingData wData)
        {
            int runningState = TBTRunningStatus.USER_EXECUTING;

            if (EntityFactory.MainHeroView == null || !EntityFactory.MainHeroView.IsValid)
            {
                return(runningState);
            }

            GuideWorkingData gData = wData as GuideWorkingData;

            List <EntityView> AroundEntitiesList = MapFinderManager.Nearest(EntityFactory.MainHeroView.StateMachine.transform.position, m_nSearchNearRadius, m_eCampFlag).ToList();

            if (AroundEntitiesList != null)
            {
                for (int i = AroundEntitiesList.Count - 1; i >= 0; i--)
                {
                    if (AroundEntitiesList[i].Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_ID) != m_nPropertyID)
                    {
                        AroundEntitiesList.RemoveAt(i);
                    }
                }

                //检测附近范围内有没有敌人
                runningState = AroundEntitiesList.Count == 0 ? TBTRunningStatus.USER_EXECUTING : TBTRunningStatus.USER_FINISHED;
            }


            return(runningState);
        }
Beispiel #3
0
        protected override void onEnter(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            bool IsAutoGuideUIPlaying = gData.GuideDynamicBB.GetValue <bool>(EGuideBBKey.IsAutoGuideMessagePlaying, false);
            int  AutoGuideMessageID   = m_nAutoGuideMessageID == -1 ? gData.GuideDynamicBB.GetValue <int>(EGuideBBKey.AutoGuideMessageID, -1) : m_nAutoGuideMessageID;

            //if ((!IsAutoGuideUIPlaying && AutoGuideMessageID != -1 && AutoGuideMessageID != m_nCurrentID))
            if ((AutoGuideMessageID != -1))//&& AutoGuideMessageID != m_nCurrentID))
            {
                gData.GuideDynamicBB.SetValue(EGuideBBKey.IsAutoGuideMessagePlaying, true);
                m_nCurrentID = AutoGuideMessageID;

                SSchemeGuideNodeData guideNodeData = GuideManager.Instance.getNodeConfigData((EGuideNodeID)m_nCurrentID);

                int nDelayRemoveTime = guideNodeData.GuideIntParams[(int)EGuideNodeConfigParamID.GuideParamID_0];
                if (guideNodeData.GuideIntParams.Count > (int)EGuideNodeConfigParamID.GuideParamID_1)
                {
                    int nSoundID = guideNodeData.GuideIntParams[(int)EGuideNodeConfigParamID.GuideParamID_1];

                    SoundManager.CreateUISound(nSoundID);
                }

                string strMessage = guideNodeData.GuideStringParams[(int)EGuideNodeConfigParamID.GuideParamID_0];


                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GAMEGUIDE, WndMsgID.WND_MSG_GAMEGUIDE_ADDAUTOMESSAGE, new UGuideMsgData(strMessage, (EGuideNodeID)m_nCurrentID, nDelayRemoveTime));

                gData.GuideDynamicBB.SetValue(EGuideBBKey.AutoGuideMessageID, -1);
            }


            base.onEnter(wData);
        }
Beispiel #4
0
        protected override int onExecute(TBTWorkingData wData)
        {
            int runningState = TBTRunningStatus.USER_EXECUTING;

            if (EntityFactory.MainHeroView == null || !EntityFactory.MainHeroView.IsValid)
            {
                return(runningState);
            }

            GuideWorkingData gData = wData as GuideWorkingData;

            IList <EntityView> AroundEntitiesList = MapFinderManager.Nearest(EntityFactory.MainHeroView.StateMachine.transform.position, m_nSearchNearRadius, SPELL.CampFlag.CampFlag_Enemy);

            //检测附近范围内有没有敌人
            runningState = AroundEntitiesList.Count == 0 ? TBTRunningStatus.USER_EXECUTING : TBTRunningStatus.USER_FINISHED;

            if (runningState == TBTRunningStatus.USER_FINISHED && !m_bDoOnce)
            {//有敌人则记录并显示UI
                m_bDoOnce = true;
                USpeedUI.UGuideMsgData msg = new USpeedUI.UGuideMsgData(m_strTextParam, gData.GuideCurrentNode, m_nSpriteParam);
                USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_MSG_GAMEGUIDE_ADDNODEMESSAGE, msg);
            }

            return(runningState);
        }
Beispiel #5
0
        protected override bool CustomPrecondition(TBTWorkingData wData)
        {
            bool result = false;

            if (EntityFactory.MainHeroView == null || !EntityFactory.MainHeroView.IsValid)
            {
                return(result);
            }

            GuideWorkingData gData = wData as GuideWorkingData;

            List <EntityView> AroundEntitiesList = MapFinderManager.Nearest(EntityFactory.MainHeroView.StateMachine.transform.position, m_nSearchNearRadius, m_eCampFlag).ToList();

            if (AroundEntitiesList != null)
            {
                for (int i = AroundEntitiesList.Count - 1; i >= 0; i--)
                {
                    if (AroundEntitiesList[i].Property == null || AroundEntitiesList[i].Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_ID) != m_nPropertyID)
                    {
                        AroundEntitiesList.RemoveAt(i);
                    }
                }

                //检测附近范围内有没有实体
                result = AroundEntitiesList.Count != 0;
            }

            return(result);
        }
Beispiel #6
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            UGuideWidget widget0 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nHallBtnStepID);

            if (widget0 != null)
            {
                widget0.Hide();
            }

            UGuideWidget widget1 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nGameModeStepID);

            if (widget1 != null)
            {
                widget1.Hide();
            }

            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_PLAYERBUTTONFRAME, WndMsgID.WND_MSG_PLAYERBUTTONFRAME_WARHALLBUTTON_REMOVEGUIDEWIDGET,
                                                   new UGuideWidgetMsgData((int)gData.GuideCurrentNode, m_nHallBtnStepID, m_nEffectID));
            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_WAR_MAIN_FRAME, WndMsgID.WND_MSG_WAR_MAIN_GAMEMODEBTN_REMOVEGUIDEWIDGET,
                                                   new UGuideWidgetMsgData((int)gData.GuideCurrentNode, m_nGameModeStepID, m_nEffectID, _oUserData: m_nGameModeID));

            return(base.onExecute(wData));
        }
Beispiel #7
0
        protected override int onUpdate(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            gData.GuideCurrentNode = GuideNodeID();
            return(base.onUpdate(wData));
        }
Beispiel #8
0
        protected override void onEnter(TBTWorkingData wData)
        {
            base.onEnter(wData);
            GuideWorkingData gData = wData as GuideWorkingData;

            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GAMEGUIDE, WndMsgID.WND_MSG_GAMEGUIDE_REMOVEGUIDEEFFECT,
                                                   new UGuideWidgetMsgData((int)gData.GuideCurrentNode, m_nStepID, m_nEffectID));
        }
Beispiel #9
0
        protected override void onEnter(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            ShowWidget(gData);

            base.onEnter(wData);
        }
Beispiel #10
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            USpeedUI.UGuideMsgRemoveData msg = new USpeedUI.UGuideMsgRemoveData(m_bIsRemoveMessage, m_bIsRemoveModal);
            USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_MSG_GAMEGUIDE_REMOVENODEREWARDMESSAGE, msg);

            return(base.onExecute(wData));
        }
Beispiel #11
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            USpeedUI.UGuideMsgData msg = new USpeedUI.UGuideMsgData(m_strTextParam, gData.GuideCurrentNode, m_nSpriteParam, _bModal: m_bModal, _userData: m_userData);

            USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_MSG_GAMEGUIDE_ADDNODEMESSAGE, msg);

            return(base.onExecute(wData));
        }
Beispiel #12
0
        protected override void onEnter(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            if (m_strToStringDebugMessage == null)
            {
                m_strToStringDebugMessage = string.Format(m_strDefaultDebugMessage, gData.GuideCurrentNode, m_strTextParam, m_nSpriteParam);
            }

            base.onEnter(wData);
        }
Beispiel #13
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;


            UGuideMsgData data = new UGuideMsgData(m_strShowMessage, gData.GuideCurrentNode);

            UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GAMEGUIDE, WndMsgID.WND_MSG_GAMEGUIDE_ALWAYMESSAGE, data);

            return(base.onExecute(wData));
        }
Beispiel #14
0
        protected override void onEnter(TBTWorkingData wData)
        {
            base.onEnter(wData);

            GuideWorkingData data = wData as GuideWorkingData;

            if (data != null)
            {
                data.GuideStateBB.SetValue(EGuideStateBBKey.GuideStateID, m_nGuideStateID);
                GuideManager.Instance.CreateNewDynamicGuideRoot(data);
            }
        }
Beispiel #15
0
        public override bool IsTrue(TBTWorkingData wData)
        {
            bool             result = true;
            GuideWorkingData gData  = wData as GuideWorkingData;

            if (m_eGameState != EStage_State.ESS_NONE && gData != null)
            {
                result = (gData.GuideStateBB.GetValue <EStage_State>(EGuideStateBBKey.GameStageState, EStage_State.ESS_NONE) == m_eGameState);
            }

            TLogger.PROFILE("判断当前比赛类型ID是否是(" + m_eGameState + "):" + result);

            return(result);
        }
Beispiel #16
0
        protected override void onExit(TBTWorkingData wData, int runningStatus)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            if (m_bFinishRemoveUIMessage)
            {
                USpeedUI.UGuideMsgRemoveData msg = new USpeedUI.UGuideMsgRemoveData();
                USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_MSG_GAMEGUIDE_REMOVENODEMESSAGE, msg);
            }

            SSchemeGuideNodeData cData = GuideManager.Instance.getNodeConfigData(gData.GuideCurrentNode);

            cData.bGuideFinished = true;
            base.onExit(wData, runningStatus);
        }
Beispiel #17
0
        protected override bool CustomPrecondition(TBTWorkingData wData)
        {
            bool result = false;

            GuideWorkingData gData = wData as GuideWorkingData;

            EGuideNodeID tmpGuideNodeID = m_eGuideNodeID == EGuideNodeID.GuideNodeID_None ? gData.GuideCurrentNode : m_eGuideNodeID;

            UGuideWidget widget = GuideManager.Instance.GetGuideWidget(tmpGuideNodeID, m_nStepID);

            if (widget != null)
            {
                result = widget.IsWidgetClick();
            }

            return(result);
        }
Beispiel #18
0
        protected override void onEnter(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            UGuideWidget widget = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nStepID);

            if (widget != null)
            {
                if (m_strToStringDebugMessage == null)
                {
                    m_strToStringDebugMessage = string.Format(m_strDefaultDebugMessage, gData.GuideCurrentNode, widget.ToString());
                }

                widget.Hide();
            }

            base.onEnter(wData);
        }
Beispiel #19
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            UGuideWidget widget0 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nHallBtnStepID);

            if (widget0 != null && widget0.gameObject.activeInHierarchy && widget0.gameObject.activeSelf && !widget0.IsWidgetShow())
            {
                widget0.Show();
            }
            else if (widget0 == null)
            {
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_PLAYERBUTTONFRAME, WndMsgID.WND_MSG_PLAYERBUTTONFRAME_WARHALLBUTTON_ADDGUIDEWIDGET,
                                                       new UGuideWidgetMsgData((int)gData.GuideCurrentNode, m_nHallBtnStepID, m_nEffectID, _bClickEvent: false));
            }

            UGuideWidget widget1 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nGameModeStepID);

            if (widget1 != null && widget1.gameObject.activeInHierarchy && widget1.gameObject.activeSelf && !widget1.IsWidgetShow())
            {
                widget1.Show();
            }
            else if (widget1 == null)
            {
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_WAR_MAIN_FRAME, WndMsgID.WND_MSG_WAR_MAIN_GAMEMODEBTN_ADDGUIDEWIDGET,
                                                       new UGuideWidgetMsgData((int)gData.GuideCurrentNode, m_nGameModeStepID, m_nEffectID, _oUserData: m_nGameModeID, _bClickEvent: false));
            }

            int result = TBTRunningStatus.EXECUTING;

            //UGuideWidget widget = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, 1);

            //if (widget != null && widget.IsWidgetClick())
            //{
            //    result = base.onExecute(wData);
            //}

            if (LogicDataCenter.playerSystemDataManager != null && LogicDataCenter.lifeHeroDataManager.LifeHeroMatchType == ELifeHeroMatchType.HAVE_MatchType_Rank)
            {
                result = base.onExecute(wData);
            }

            return(result);
        }
Beispiel #20
0
        protected override bool onEvaluate(/*in*/ TBTWorkingData wData)
        {
            GuideWorkingData gWData      = wData as GuideWorkingData;
            EStage_State     tmpCurState = EStage_State.ESS_NONE;
            int tmpNoviceID = -1;

            if (gWData != null)
            {
                tmpCurState = gWData.GuideStateBB.GetValue <EStage_State>(EGuideStateBBKey.GameStageState, EStage_State.ESS_NONE);
                tmpNoviceID = gWData.GuideStateBB.GetValue <int>(EGuideStateBBKey.PlayerNoviceGuideType, -1);
            }

            if (m_eOldStage != EStage_State.ESS_NONE && m_eOldStage != tmpCurState)
            {
                GuideManager.Instance.DestroyOldDynamicGuideRoot(wData);
            }
            else if (m_eOldStage != EStage_State.ESS_NONE && m_eOldStage == tmpCurState)
            {
                if (tmpNoviceID != -1 && tmpNoviceID != m_nNoviceID)
                {
                    GuideManager.Instance.DestroyOldDynamicGuideRoot(wData);
                }
            }
            m_eOldStage = tmpCurState;
            m_nNoviceID = tmpNoviceID;


            TBTActionPrioritizedSelectorContext thisContext = getContext <TBTActionPrioritizedSelectorContext>(wData);

            thisContext.currentSelectedIndex = -1;
            int childCount = GetChildCount();

            for (int i = 0; i < childCount; ++i)
            {
                TBTAction node = GetChild <TBTAction>(i);
                if (node.Evaluate(wData))
                {
                    thisContext.currentSelectedIndex = i;
                    return(true);
                }
            }
            return(false);
        }
Beispiel #21
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            int result = base.onExecute(wData);

            result = ShowWidget(gData);

            if (TBTRunningStatus.IsFinished(result))
            {
                result = m_bClickWidgetFinished ? TBTRunningStatus.USER_EXECUTING : result;
                UGuideWidget widget = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, m_nStepID);
                if (widget != null && widget.IsWidgetClick())
                {
                    result = TBTRunningStatus.FINISHED;
                }
            }

            return(result);
        }
Beispiel #22
0
        public override bool IsTrue(TBTWorkingData wData)
        {
            bool             result = true;
            GuideWorkingData gData  = wData as GuideWorkingData;

            if (gData != null)
            {
                if (m_eUserIDType == EGuideStateUserIDType.EST_NoviceID)
                {
                    result = (gData.GuideStateBB.GetValue <int>(EGuideStateBBKey.PlayerNoviceGuideType, -1) == m_nUserID);
                }
                else
                {
                    result = (gData.GuideStateBB.GetValue <int>(EGuideStateBBKey.GuideMatchTypeID, -1)) == m_nUserID;
                }
            }

            TLogger.PROFILE("判断当前用户ID类型:" + m_eUserIDType + ",ID:" + m_nUserID + "" + result);

            return(result);
        }
Beispiel #23
0
        protected void UpdateLogicData(TBTWorkingData _data)
        {
            GuideWorkingData gData = _data.As <GuideWorkingData>();

            if (gData != null && m_nLogicStepID != gData.GuideDynamicBB.GetValue <int>(EGuideBBKey.LogicStepID, -1))
            {
                if (m_nLogicStepID != -1)
                {
                    Transition(_data);
                }
                m_nLogicStepID = gData.GuideDynamicBB.GetValue <int>(EGuideBBKey.LogicStepID, -1);

                GuideRoot_01Context thisContext = getContext <GuideRoot_01Context>(_data);

                thisContext.currentSelectedIndex++;
                if (!IsIndexValid(thisContext.currentSelectedIndex))
                {
                    thisContext.currentSelectedIndex = -1;
                }
            }
        }
Beispiel #24
0
        protected void InitGuideState()
        {
            ////////////////////////////////////////////////////////初始化引导状态行为树
            m_GuideStateRoot = new GuideState_Root();
            for (int i = 0; i < dicGuideStateConfigTable.Count; ++i)
            {
                SSchemeGuideStateData data = dicGuideStateConfigTable[i];
                if (data != null && data.GuideNodeIDList != null && data.GuideNodeIDList.Count > 0)
                {
                    GuideState_GameState_Selector gameStateSelector = null;
                    //判断已经有该状态类型
                    if (!m_GuideStateRoot.TryGetGameStateSelector(data.GameStateID, out gameStateSelector))
                    {//没有则增加
                        gameStateSelector = new GuideState_GameState_Selector(data.GameStateID);
                        m_GuideStateRoot.AddChild(gameStateSelector);
                    }

                    //判断是否已有该用户ID
                    GuideState_UserID_Selector userIDSelector = null;
                    if (!gameStateSelector.TryGetUserIDSelector(data.UserIDType, data.UserID, out userIDSelector))
                    {
                        userIDSelector = new GuideState_UserID_Selector(data.UserIDType, data.UserID);
                        gameStateSelector.AddChild(userIDSelector);
                    }

                    //挂接创建动态引导根节点逻辑
                    if (userIDSelector != null)
                    {
                        GuideState_CreateDynamicGuideLeaf dynamic = new GuideState_CreateDynamicGuideLeaf(data.GuideStateID);
                        dynamic.SetPrecondition(new TBTPreconditionAND(new CON_IsMainPlayerCreated(), new CON_IsPlayerLevelExit(data.PlayerLevelLimit)));
                        userIDSelector.AddChild(dynamic);
                    }
                }
            }

            m_guideData = new GuideWorkingData();
            m_guideData.GuideDynamicBB = new GuideBlackboard_EGuideBBKey();
            m_guideData.GuideStateBB   = new GuideBlackboard_EGuideStateBBKey();
            m_guideData.GuideStateBB.SetValue(EGuideStateBBKey.PlayerNoviceGuideType, ENNOVICEGUIDE_TYPE.ENNOVICEGUIDE_TYPE_GUIDE_TWOSTEP);
        }
Beispiel #25
0
        public void CreateNewDynamicGuideRoot(TBTWorkingData wData)
        {
            if (m_GuideDynamicRoot == null)
            {
                GuideWorkingData data = wData as GuideWorkingData;
                if (data != null && data.GuideDynamicBB != null)
                {
                    int GuideStateID = data.GuideStateBB.GetValue <int>(EGuideStateBBKey.GuideStateID, -1);
                    SSchemeGuideStateData stateData = GetGuideStateData(GuideStateID);
                    if (stateData != null)
                    {
                        m_GuideDynamicRoot = CreateDynamicRoot(stateData.GuideRootType);


                        for (int j = 0; j < stateData.GuideNodeIDList.Count; ++j)
                        {
                            EGuideNodeID         guideNodeID   = (EGuideNodeID)stateData.GuideNodeIDList[j];
                            SSchemeGuideNodeData guideNodeData = null;
                            if (dicGuideConfigTable.TryGetValue(guideNodeID, out guideNodeData))
                            {
                                //先根据引导节点需要挂接的父节点类型处理
                                EGuideActionLayerType layerType       = (EGuideActionLayerType)guideNodeData.nGuideActionLayerType;
                                TBTAction             layerTypeAction = null;
                                if (!m_GuideDynamicRoot.TryGetLayerTypeAction(layerType, out layerTypeAction))
                                {
                                    layerTypeAction = CreateLayerTypeAction(layerType);
                                    m_GuideDynamicRoot.AddChild(layerTypeAction);
                                }

                                layerTypeAction.AddChild(getNodeDataInstance(guideNodeID));
                            }
                            else
                            {
                                Trace.LogWarning("没有引导ID为:" + guideNodeID + " 的引导数据,配错了?");
                            }
                        }
                    }
                }
            }
        }
Beispiel #26
0
        protected override bool CustomPrecondition(TBTWorkingData wData)
        {
            bool result = m_bDoOnce;

            if (!m_bDoOnce)
            {
                GuideWorkingData gData          = wData as GuideWorkingData;
                Vector3          MonsterDeadPos = gData.GuideDynamicBB.GetValue <Vector3>(EGuideBBKey.DeadEntityID, Vector3.zero);
                if (MonsterDeadPos.magnitude != 0 && EntityFactory.MainHero != null)
                {
                    result = (EntityFactory.MainHero.transform.position - MonsterDeadPos).sqrMagnitude <= m_nNearbySize;
                    //清空下
                    if (result)
                    {
                        gData.GuideDynamicBB.SetValue(EGuideBBKey.DeadEntityID, Vector3.zero);
                        m_bDoOnce = true;
                    }
                }
                TLogger.PROFILE("判断玩家附近是否有敌方实体死亡(实体死亡会销毁比较难检测到):" + result);
            }

            return(result);
        }
Beispiel #27
0
        protected override bool CustomPrecondition(TBTWorkingData wData)
        {
            bool result = false;

            if (EntityFactory.MainHeroView == null || !EntityFactory.MainHeroView.IsValid)
            {
                return(result);
            }

            GuideWorkingData gData = wData as GuideWorkingData;

            int        nDeadEntityID = gData.GuideDynamicBB.GetValue <int>(EGuideBBKey.DeadEntityID, -1);
            EntityView ev            = EntityFactory.getEntityViewByID(nDeadEntityID);

            if (nDeadEntityID != -1 && ev != null)
            {
                int propertyID = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_ID);

                result = propertyID == m_nPropertyID;
            }

            return(result);
        }
Beispiel #28
0
        protected int ShowWidget(GuideWorkingData _data)
        {
            if (m_bDoOnce)
            {
                return(TBTRunningStatus.USER_FINISHED);
            }

            UGuideWidget widget = GuideManager.Instance.GetGuideWidget(_data.GuideCurrentNode, m_nStepID);

            if (widget != null)
            {
                if (m_strToStringDebugMessage == null)
                {
                    m_strToStringDebugMessage = string.Format(m_strDefaultDebugMessage, _data.GuideCurrentNode, widget.ToString());
                }

                widget.Show();
                m_bDoOnce = true;
                return(TBTRunningStatus.USER_FINISHED);
            }

            return(TBTRunningStatus.USER_EXECUTING);
        }
Beispiel #29
0
        protected override int onExecute(TBTWorkingData wData)
        {
            GuideWorkingData gData = wData as GuideWorkingData;

            UGuideWidget widget0 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, 0);

            if (widget0 != null && widget0.gameObject.activeInHierarchy && widget0.gameObject.activeSelf && !widget0.IsWidgetShow())
            {
                widget0.Show();
            }
            else if (widget0 == null)
            {
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_PLAYERBUTTONFRAME, WndMsgID.WND_MSG_PLAYERBUTTONFRAME_WARHALLBUTTON_ADDGUIDEWIDGET,
                                                       new UGuideWidgetMsgData((int)gData.GuideCurrentNode, 0, m_nEffectID, _bClickEvent: false));
            }

            UGuideWidget widget1 = GuideManager.Instance.GetGuideWidget(gData.GuideCurrentNode, 1);

            if (widget1 != null && widget1.gameObject.activeInHierarchy && widget1.gameObject.activeSelf && !widget1.IsWidgetShow())
            {
                widget1.Show();
            }
            else if (widget1 == null)
            {
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_WAR_MAIN_FRAME, WndMsgID.WND_MSG_WAR_MAIN_GAMEMODEBTN_ADDGUIDEWIDGET,
                                                       new UGuideWidgetMsgData((int)gData.GuideCurrentNode, 1, m_nEffectID, _oUserData: m_nGameModeID, _bClickEvent: false));
            }

            int result = TBTRunningStatus.EXECUTING;

            if (LogicDataCenter.lifeHeroDataManager.HistoryRecord.Count >= m_nMatchLimit)
            {
                result = base.onExecute(wData);
            }

            return(result);
        }