//Eventually will spawn objectives based off contract public void SpawnContract() { objectiveEvents = new List <ObjectiveEvent>(); for (int i = 0; i < contractObjectives.Count; i++) { Objective objective = contractObjectives[i]; GameObject contractObjectiveObject = (GameObject)GameObject.Instantiate(objectivePrefab, objective.Position, Quaternion.identity); ObjectiveEvent contractObjectiveEvent = contractObjectiveObject.GetComponent <ObjectiveEvent>(); contractObjectiveEvent.ObjectiveContract = this; contractObjectiveEvent.ToComplete = objective; objectiveEvents.Add(contractObjectiveEvent); if (i == 0) { SetUIMarker(contractObjectiveObject); } else { objectiveEvents[i - 1].NextObjective = contractObjectiveObject; contractObjectiveObject.SetActive(false); } } }
public void ObjectiveEvent(ObjectiveEvent e) { ObjectiveModel om = ObjectiveLevelData.GetObjectiveModel(e.ObjectiveId); ObjectiveThingsModel otm = ObjectiveLevelData.GetObjectiveThingsModel(e.ObjectiveThingsId, om); if (otm.CheckThingsRequirements()) { otm.Obtained.Value = true; } }
private void CompleteTask() { //Can't complete unless objective conditions are met if (!objective.Completed) { return; } if (CheckIfNextObjective()) { //Set the next objective to active and update the minimap nextObjective.SetActive(true); objectiveContract.SetUIMarker(nextObjective); } if (PlayerShipScript.player) { ObjectiveEvent objectiveEvent = gameObject.GetComponent <ObjectiveEvent>(); objectiveContract.CompleteContractObjective(objectiveEvent.objective); PlayerShipScript.player.ObjectiveMarker.GetComponent <UIMarker>().removeTargetFromStack(gameObject); } Destroy(gameObject); }