Ejemplo n.º 1
0
    //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);
            }
        }
    }
Ejemplo n.º 2
0
    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;
        }
    }
Ejemplo n.º 3
0
    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);
    }