コード例 #1
0
        public static void StartCurrentObjective()
        {
            var index         = CurrentMissionObjectiveIndex;
            var objectiveType = MissionInfo.MissionObjectivesInfo[index].MissionObjectiveType;

            switch (true)
            {
            case true when objectiveType.IsAssignableFrom(typeof(MissionObjectiveEnterLocation)):
                // 首个任务目标不自动设置导航点
                var isShowRoute = index != 0;

                var helpText = index == 0 ? "按住 ~INPUT_CONTEXT~ 开始任务 - ~y~王者归来~s~" : "按住 ~INPUT_CONTEXT~ 开始占领据点任务";
                var location = MissionInfo.MissionObjectivesInfo[index].Location;
                CurrentMissionObjective = new MissionObjectiveEnterLocation("王者归来", isShowRoute, helpText, "", location);
                break;

            case true when objectiveType.IsAssignableFrom(typeof(MissionObjectiveKillAndCaptureInLocation)):
                CurrentMissionObjective = new MissionObjectiveKillAndCaptureInLocation(
                    "王者归来", false, "", "按住 ~INPUT_CONTEXT~ 占领据点",
                    MissionInfo.MissionObjectivesInfo[index].Location, 20);

                break;
            }


            CurrentMissionObjective.Start();
            CurrentMissionObjective.OnMissionObjectiveAccomplish += StartNextObjective;

            OnMissionObjectiveStart?.Invoke(
                CurrentMissionObjective, index, index == 0, index >= MissionInfo.MissionObjectivesInfo.Count);
        }
コード例 #2
0
        public virtual void Start()
        {
            IsActivated       = true;
            IsAccomplished    = false;
            IsSubAccomplished = false;

            StartDrawing();

            OnMissionObjectiveStart?.Invoke();
        }