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(); }
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); }