private void CreateMissionTask() { MissionTaskData data = new MissionTaskData(); data.DescriptionKey = DESCRIPTION; data.PowerRequirement = REQUIRED_POWER; data.StatRequirement = TEST_STAT; mMissionTask = new MissionTask(data, new MissionProposal()); }
/// <summary> /// Loads the player progress for this task instance /// </summary> /// <param name="task">The player task information</param> public void LoadInstance(MissionTask task) { if (task.Values != null) { Progress = task.ValueArray().ToList(); } else { Progress = new List <float>(); } }
bool ConditionsMet(MissionTask currenTask) { foreach (TaskCondition currentCondition in currenTask.TaskConditions) { switch (currentCondition.Type) { case TaskCondition.TaskConditionType.CloseTo: if (!IsCloseTo( Game.Instance().CurrentLevel.Entities.FirstOrDefault(ent => ent.UniqueObjectName == currentCondition.uniqueObjectNameFrom).gameObject, Game.Instance().CurrentLevel.Entities.FirstOrDefault(ent => ent.UniqueObjectName == currentCondition.uniqueObjectNameTo).gameObject)) { return(false); } break; case TaskCondition.TaskConditionType.Destroyed: if (!IsDestroyed(currentCondition.uniqueObjectNameFrom)) { return(false); } break; case TaskCondition.TaskConditionType.Inventoried: if (!IsInventoried(currentCondition.uniqueObjectNameFrom, currentCondition.Quantity)) { } break; case TaskCondition.TaskConditionType.KeyPressed: if (Input.GetButton(currentCondition.uniqueObjectNameFrom)) { return(false); } break; } } return(true); }
public void InitiateExecution(params object[] obj) { if (!CanBeExecutedOn(obj)) { throw new InvalidOperationException("Cannot be executed!"); } var tran = _transactionProvider.GetCurrentTransaction(); tran.CaptureMacroState("CommandAddTask"); var mission = (Mission)obj[0]; var task = new MissionTask(); tran.Helper.AddItem(mission.Tasks, task); tran.Commit(); }
void ExecuteTaskActions(MissionTask currenTask) { foreach (TaskAction currentaAction in currenTask.TaskActions) { switch (currentaAction.Type) { case TaskAction.TaskActionType.InventoryAdd: AddInventory(currentaAction.uniqueObjectNameFrom, currentaAction.Quantity); break; case TaskAction.TaskActionType.LoadScene: SceneManager.LoadScene(currentaAction.uniqueObjectNameFrom); break; case TaskAction.TaskActionType.ShowMessage: Debug.Log(currentaAction.uniqueObjectNameFrom); break; } } }
public void LoadMissions(XmlDocument xmlDoc) { var selectedNodes = xmlDoc.SelectNodes("//level/missions/mission"); foreach (XmlNode currentNode in selectedNodes) { newMission = new Mission { id = currentNode.Attributes["id"].Value, description = currentNode.Attributes["description"].Value, prerequisites = currentNode.Attributes["prerequisites"].Value }; newMission.MissionTasks = new List <MissionTask>(); var selectedTask = xmlDoc.SelectNodes(string.Format("//level/missions/mission[@id='{0}']/tasks/task", newMission.id)); foreach (XmlNode currentTask in selectedTask) { newMissionTask = new MissionTask { id = currentTask.Attributes["id"].Value, description = currentTask.Attributes["description"].Value }; newMissionTask.TaskConditions = new List <TaskCondition>(); var selectedTaskConditions = xmlDoc.SelectNodes(string.Format("//level/missions/mission[@id='{0}']/tasks/task[@id='{1}']/conditions/condition", newMission.id, newMissionTask.id)); foreach (XmlNode currentTaskCondition in selectedTaskConditions) { newTaskCondition = new TaskCondition { Type = (TaskCondition.TaskConditionType)Enum.Parse(typeof(TaskCondition.TaskConditionType), currentTaskCondition.Attributes["type"].Value), uniqueObjectNameFrom = currentTaskCondition.Attributes["uniqueObjectNameFrom"].Value, uniqueObjectNameTo = currentTaskCondition.Attributes["uniqueObjectNameTo"].Value }; newMissionTask.TaskConditions.Add(newTaskCondition); } newMissionTask.TaskActions = new List <TaskAction>(); var selectedTaskActions = xmlDoc.SelectNodes(string.Format("//level/missions/mission[@id='{0}']/tasks/task[@id='{1}']/actions/action", newMission.id, newMissionTask.id)); foreach (XmlNode currentTaskCondition in selectedTaskActions) { newTaskAction = new TaskAction { Type = (TaskAction.TaskActionType)Enum.Parse(typeof(TaskAction.TaskActionType), currentTaskCondition.Attributes["type"].Value), uniqueObjectNameFrom = currentTaskCondition.Attributes["uniqueObjectNameFrom"].Value, uniqueObjectNameTo = currentTaskCondition.Attributes["uniqueObjectNameTo"].Value, Quantity = Convert.ToSingle(currentTaskCondition.Attributes["quantity"].Value) }; newMissionTask.TaskActions.Add(newTaskAction); } newMission.MissionTasks.Add(newMissionTask); } Game.Instance().CurrentLevel.Missions.Add(newMission); } }