Пример #1
0
        public bool CloseMission(int id, EMissionResult result)
        {
            if (m_Scenario.IsMissionRunning(id))
            {
                if (onCloseMission != null)
                {
                    onCloseMission(id, result);
                }

                if (m_Goals != null)
                {
                    FreeGoals(id);
                    m_Goals.Remove(id);
                }

                if (m_Scenario.CloseMission(id))
                {
                    m_MissionIDs.Remove(id);
                    m_MissionProperties.Remove(id);
                    m_MissionTrack.Remove(id);
                    return(true);
                }
            }
            else
            {
                Debug.LogError("Close mission [" + id + "] failed !");
            }

            return(false);
        }
    void OnCloseMission(int id, EMissionResult result)
    {
        int index = m_MainStoryIds.FindIndex(item0 => item0 == id);

        if (index != -1)
        {
            missionWnd.RemoveMainStoryNode(index);
            m_MainStoryIds.RemoveAt(index);
        }
        else
        {
            index = m_SideQuestIdes.FindIndex(item0 => item0 == id);
            if (index != -1)
            {
                missionWnd.RemoveSideQuestNode(index);
                m_SideQuestIdes.RemoveAt(index);
            }
        }

        RefreshNodeSelected();

        // Clear Goal
        if (missionWnd.selectedNode == null)
        {
            DetachGoalEvent();
            _currentMissionId = -1;
        }
    }
    void OnCloseMission(int mission_id, EMissionResult r)
    {
        int index = m_TrackedIds.FindIndex(item0 => item0 == mission_id);

        if (index != -1)
        {
            missionTrackWnd.RemoveViewNode(index);
            m_TrackedIds.RemoveAt(index);
        }
    }
Пример #4
0
 public void OnResponse(int mId, EMissionResult res)
 {
     if (missionId == -1 ||                                             // Any mission
         mission != null && missionId == 0 && mId == mission.dataId ||  // Current mission
         mission != null && missionId == -2 && mId != mission.dataId || // Any other mission
         missionId == mId)                                              // Specified mission
     {
         if (result == res || result == EMissionResult.Any)             // Check result
         {
             Post();
         }
     }
 }
Пример #5
0
 // 执行动作
 // 若为瞬间动作,返回true;
 // 若为持续动作,该函数会每帧被调用,直到返回true
 public override bool Logic()
 {
     if (owner && missionId > 0)
     {
         if (PeCustomScene.Self != null &&
             PeCustomScene.Self.scenario != null &&
             PeCustomScene.Self.scenario.missionMgr != null)
         {
             if (result == EMissionResult.Any)
             {
                 result = EMissionResult.Accomplished;
             }
             PeCustomScene.Self.scenario.missionMgr.CloseMission(missionId, result);
         }
     }
     return(true);
 }
Пример #6
0
        // 在此初始化参数
        protected override void OnCreate()
        {
            missionId = Utility.ToEnumInt(parameters["mission"]);
            player    = Utility.ToObject(parameters["player"]);
            result    = (EMissionResult)Utility.ToEnumInt(parameters["result"]);

            if (missionId == 0)
            {
                missionId = mission != null ? mission.dataId : -1;
            }

            if (PeCustomScene.Self != null &&
                PeCustomScene.Self.scenario != null)
            {
                int curr_player = PeCustomScene.Self.scenario.playerId;
                owner = PeScenarioUtility.OwnerCheck(curr_player, curr_player, player);
            }
            else
            {
                owner = false;
            }
        }
Пример #7
0
 // 在此初始化参数
 protected override void OnCreate()
 {
     missionId = Utility.ToEnumInt(parameters["mission"]);
     result    = (EMissionResult)Utility.ToEnumInt(parameters["result"]);
 }