/// <summary> /// handling the dialogue for partially solved levels /// </summary> public void ShowPartiallySolvedDialog() { string message = null; while (message == null) { dialogIndex++; if (dialogIndex >= _gameState.CurrentPerson.ReviewStory.Count) { EndDialog(); GameState.instance.ResetLevel(GameState.instance.CurrentPerson); ScreenViewHandler.instance.EnterMiniMapMenu(); } else { ReviewStory reviewStory = _gameState.CurrentPerson.ReviewStory[dialogIndex]; UpdateActor(reviewStory.Actor); if (reviewStory.DialogType.Equals("Action") || reviewStory.DialogType.Equals("All")) { Debug.Log("PARTIALY"); message = reviewStory.Message != null ? reviewStory.Message : GetMessageDependingOnSolvedActionStatus(reviewStory); if (!string.IsNullOrEmpty(message)) { string actor = reviewStory.Actor; StopAllCoroutines(); StartCoroutine(DialogueWriter(message, actor)); } } } } }
/// <summary> /// Handling dialogue mechanic for solved levels /// </summary> public void ShowSolvedDialog() { string message = null; while (message == null) { dialogIndex++; if (dialogIndex >= _gameState.CurrentPerson.ReviewStory.Count) { EndDialog(); GameState.instance.ResetLevel(GameState.instance.CurrentPerson); GameState.instance.AccomplishActualLevel(); ScreenViewHandler.instance.EnterMiniMapMenu(); break; } else { ReviewStory reviewStory = _gameState.CurrentPerson.ReviewStory[dialogIndex]; if (reviewStory.DialogType.Equals("All") || reviewStory.DialogType.Equals("Solved")) { message = reviewStory.Message != null ? reviewStory.Message : reviewStory.SolvedMessage; if (!string.IsNullOrEmpty(message)) { UpdateActor(reviewStory.Actor); StopAllCoroutines(); string actor = reviewStory.Actor; StartCoroutine(DialogueWriter(message, actor)); } } } } }
/// <summary> /// Get proper dialogue message depending on its solved status /// </summary> /// <param name="story"></param> /// <returns></returns> private string GetMessageDependingOnSolvedActionStatus(ReviewStory story) { if (story.DialogType != "Action") { if (_gameState.CurrentPerson.EvilAction.Count > 0) { return story.FailedMessage; } return story.SolvedMessage; } else { foreach (EvilAction evilAction in GameState.instance.CurrentPerson.EvilAction) { if (evilAction.Identifier == story.Identifier) { return story.FailedMessage; } } return story.SolvedMessage; } }