private void GoToNextCheckpoint()
 {
     currentQuest.Checkpoints[questProgress].TimeElapsed = System.DateTime.Now.Subtract(checkpointStartTime).TotalSeconds;
     currentQuest.Checkpoints[questProgress].Status      = StatusCheckPoint.FINISHED;
     if (PlayQuestController.Instance.CurrentCheckpoint.Checkpoint.Badge != null)
     {
         Controller.Instance.User.Badges.Add(PlayQuestController.Instance.CurrentCheckpoint.Checkpoint.Badge);
     }
     if (questProgress < currentQuest.Checkpoints.Count - 1)
     {
         questProgress++;
         currentCheckpoint   = currentQuest.Checkpoints[questProgress];
         checkpointStartTime = System.DateTime.Now;
         destroyOnLoad       = false;
         SceneManager.LoadScene("GameImageScene");
     }
     else
     {
         currentQuest.TimeElapsed = 0;
         foreach (StateCheckPoint checkpoint in currentQuest.Checkpoints)
         {
             currentQuest.TimeElapsed += checkpoint.TimeElapsed;
         }
         currentQuest.Done = true;
         destroyOnLoad     = false;
         SceneManager.LoadScene("EndQuestScene");
     }
     Controller.Instance.PersistUserAdvancement();
 }
Example #2
0
 public static JObject ToJson(StateCheckPoint checkPoint)
 {
     return(new JObject(
                new JProperty("status", checkPoint.Status.ToString()),
                new JProperty("timeElapsed", checkPoint.TimeElapsed)
                ));
 }
    void Start()
    {
        if (instance == null)
        {
            instance = this;

            currentQuest        = Controller.Instance.CurrentQuest;
            questProgress       = CheckQuestProgress();
            currentCheckpoint   = currentQuest.Checkpoints[questProgress];
            checkpointProgress  = 0;
            checkpointStartTime = System.DateTime.Now;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }


        DontDestroyOnLoad(gameObject);
    }