/**********************************************************************************/ // функция устанавливает // /**********************************************************************************/ protected void ShowNextDialogPage() { string levelKey = "mission_" + m_levelNumber + m_dialogKey; DialogData dialogs = m_dialogDataCollection[levelKey]; if (dialogs.pairs.Length > m_dialogPage) { DialogPair currentDialogPage = dialogs.pairs[m_dialogPage]; Base.GO_TYPE goIconType = (Base.GO_TYPE)Enum.Parse(typeof(Base.GO_TYPE), currentDialogPage.IconType); UIController.GetInstance().SetDialog(goIconType, currentDialogPage.textKey, currentDialogPage.NameKey); // взводим таймер блокировки m_controllerBlockTimer = m_controllerBlockTimerLimit; m_dialogPage++; } else { Debug.Log("Dialog complited"); // скрываем диалог и переходим к игре m_state = CDM_STATE.READY; UIController.GetInstance().HideDialog(); GameManager.SetPauseState(false, true); } }
/**********************************************************************************************/ // Загружаем все данные из файлов настройки (m_defaultSettingsDataFile) // /**********************************************************************************************/ void LoadSettingsFromFile() { m_state = CDM_STATE.INITIALIZATION; m_dialogDataCollection = new Dictionary <string, DialogData>(); string filePath = Path.Combine(Application.streamingAssetsPath, m_defaultSettingsDataFile); if (File.Exists(filePath)) { string dataAsJson = File.ReadAllText(filePath); DialogDataCollection loadedData = JsonUtility.FromJson <DialogDataCollection>(dataAsJson); for (int i = 0; i < loadedData.items.Length; i++) { m_dialogDataCollection.Add(loadedData.items[i].dialogKey, loadedData.items[i]); } Debug.Log("Company settings loaded, dictionary contains: " + m_dialogDataCollection.Count + " entries"); } else { Debug.LogError("Cannot find file!"); } m_state = CDM_STATE.READY; }
/**********************************************************************************/ // функция извещающая CompanyDialogManager о провале карты в компании // /**********************************************************************************/ public void OnMissionFailed() { GameManager.SetPauseState(true, true); m_dialogPage = 0; m_state = CDM_STATE.DIALOG_PROCESS; m_dialogKey = "_failed"; ShowNextDialogPage(); }
/**********************************************************************************/ // функция извещающая CompanyDialogManager о загрузке новой карты в компании // /**********************************************************************************/ public void OnMissionLoaded(int levelNum) { // по завершению загрузки отображаем стартовый диалок для этого уровня // останавливаем игру на старте, чтобы показать все необходимые диалоги GameManager.SetPauseState(true, true); m_dialogPage = 0; m_state = CDM_STATE.DIALOG_PROCESS; m_levelNumber = levelNum; m_dialogKey = "_start"; ShowNextDialogPage(); }