public bool GetObjectiveState(string objectiveName, out ObjectiveState objectiveState) { objectiveState = null; MissionObjective objective = null; if (mObjectiveLookup.TryGetValue(objectiveName, out objective)) { objectiveState = objective.State; } return(objectiveState != null); }
public void IgnoreObjective(string objectiveName) { MissionObjective objective = null; if (mObjectiveLookup.TryGetValue(objectiveName, out objective)) { objective.IgnoreObjective(); } Save(); }
public void ForceFailObjective(string objectiveName) { MissionObjective objective = null; if (mObjectiveLookup.TryGetValue(objectiveName, out objective)) { objective.ForceFail(); } //Refresh (); Save(); }
public void ActivateObjective(string objectiveName, MissionOriginType originType, string originName) { if (!Flags.Check((uint)State.Status, (uint)MissionStatus.Active, Flags.CheckType.MatchAny)) { Activate(originType, originName); } MissionObjective objective = null; if (mObjectiveLookup.TryGetValue(objectiveName, out objective)) { objective.ActivateObjective(ObjectiveActivation.Manual, originType, originName); } State.GetPlayerAttention = true; Save(); }
protected void CreateNextObjectives() { if (mHasGeneratedNextObjectives) { return; } for (int i = 0; i < State.NextObjectiveNames.Count; i++) { MissionObjective nextObjective = null; if (mission.GetObjective(State.NextObjectiveNames [i], out nextObjective)) { NextObjectives.Add(nextObjective); } } mHasGeneratedNextObjectives = true; }
public override void CheckIfCompleted() { string missionName = MissionName; if (string.IsNullOrEmpty(missionName)) { missionName = objective.mission.name; } bool result = true; MissionStatus objectiveStatus = MissionStatus.Dormant; //if we're checking our mission do it locally, otherwise do it with the manager if (missionName == objective.mission.State.Name) { MissionObjective checkObjective = null; if (objective.mission.GetObjective(ObjectiveName, out checkObjective)) { bool hasCompleted = Flags.Check((uint)checkObjective.State.Status, (uint)MissionStatus.Completed, Flags.CheckType.MatchAny); bool hasFailed = Flags.Check((uint)checkObjective.State.Status, (uint)MissionStatus.Failed, Flags.CheckType.MatchAny); if (!hasCompleted || (hasFailed && !FailureOK)) { //Debug.Log ("Objective " + ObjectiveName + " hasn't completed, or it has failed and failure is not okay"); result = false; } } } else { if (Missions.Get.ObjectiveStatusByName(missionName, ObjectiveName, ref objectiveStatus)) { bool hasCompleted = Flags.Check((uint)objectiveStatus, (uint)MissionStatus.Completed, Flags.CheckType.MatchAny); bool hasFailed = Flags.Check((uint)objectiveStatus, (uint)MissionStatus.Failed, Flags.CheckType.MatchAny); if (!hasCompleted || (hasFailed && !FailureOK)) { result = false; } } } HasCompleted = result; FinishedChecking = true; }
public bool GetObjective(string objectiveName, out MissionObjective objective) { return(mObjectiveLookup.TryGetValue(objectiveName, out objective)); }