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); }
public virtual void Start() { IsActivated = true; IsAccomplished = false; IsSubAccomplished = false; StartDrawing(); OnMissionObjectiveStart?.Invoke(); }