// @Brief : Start void Start() { m_pLogContainer = new KrCharagekiLogContainer(); m_pScenarioContainer = new KrCharagekiScenarioContainer(); KrCharagekiScript pScript = LoadScript(); //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // RESOURCE DOWNLOAD List <string> pResourcePaths = pScript.GetResourcesPaths(); for (int sIndex = 0; sIndex < pResourcePaths.Count; sIndex++) { // TODO : Add asset download KrDebug.Log("Download => " + pResourcePaths[sIndex], typeof(KrCharagekiManager)); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // INITILIZE COMMAND List <KrCharagekiCommand> pInitializeCommands = pScript.GetInitializeCommands(); KrDebug.Log("Initialize charageki", typeof(KrCharagekiManager)); for (int sIndex = 0; sIndex < pInitializeCommands.Count; sIndex++) { pInitializeCommands[sIndex].Exec(this); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // SET MAIN SECTION m_pMainCharagekiSections = pScript.GetMainSections(); KrDebug.Log("Get main sections : count = " + m_pMainCharagekiSections.Count, typeof(KrCharagekiManager)); m_sSectionIndex = 0; ScriptUpdate(); }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // PROTECTED FUNCTION //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // @Brief : Execution with key & path // @Param : pKey => Key name // : pPath => Asset path of csv // : pManager => Charageki manager protected override void Exec(string pKey, string pPath, KrCharagekiManager pManager) { KrCharagekiScenarioContainer pScenarioContainer = pManager.GetScenarioContainer(); KrDebug.Log("Load scenario : key = " + pKey + ", path = " + pPath, typeof(KrCharagekiCommandLoadScenario)); // Load scenario csv data pScenarioContainer.LoadScenario(pKey, pPath); }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // PUBLIC FUNCTION //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // @Brief : Execution command // @Param : pManager => Charageki manager public override void Exec(KrCharagekiManager pManager) { string pKey = ""; for (int sIndex = 0; sIndex < m_pOptions.Count; sIndex++) { //::::::::::::::::::::::::::::::::::::::::::::::::::: // KEY if (m_pOptions[sIndex].m_pKey == "key") { pKey = m_pOptions[sIndex].m_pValue; } } KrDebug.Assert(!string.IsNullOrEmpty(pKey), "there is no key!!", typeof(KrCharagekiCommandLoadScenario)); KrCharagekiScenarioContainer pScenarioContainer = pManager.GetScenarioContainer(); KrDebug.Log("Set scenario = " + pKey, typeof(KrCharagekiCommandLoadScenario)); // set the current scenario pScenarioContainer.SettingScenario(pKey); }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // PROTECTED FUNCTION //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: // @Brief : Execution with option // @Param : uId => Value of "No" column of csv // : pManager => Charageki manager protected override void Exec(uint uId, KrCharagekiManager pManager) { KrCharagekiScenarioContainer pScenarioContainer = pManager.GetScenarioContainer(); // Get row data of csv KrCsvDataRow pCsvDataRow = pScenarioContainer.GetScenario(uId.ToString(), "No"); uint uCharaId = 0; bool bIsSuccess = uint.TryParse(pCsvDataRow.GetValue("CharaId"), out uCharaId); KrDebug.Assert(bIsSuccess, "Parsing failed to type int = " + pCsvDataRow.GetValue("CharaId"), typeof(KrCharagekiCommandSetText)); KrDebug.Assert(KrCharagekiDef.s_pCHARA_DIC.ContainsKey(uCharaId), "Invalid KrCharagekiDef.s_CHARA_NAME key = " + uCharaId, typeof(KrCharagekiCommandSetText)); string pCharaName = KrCharagekiDef.s_pCHARA_DIC[uCharaId].GetCharacterName(); string pComment = pCsvDataRow.GetValue("Comment"); KrDebug.Log("Play Text : " + "CharaId" + " = " + pCharaName + ", " + "Comment" + " = " + pComment, typeof(KrCharagekiCommandSetText)); KrCharagekiUIController pUIController = pManager.GetUIController(); // Set text float fReadingTime = pUIController.SetText(pCharaName, pComment); // Play voice string pVoiceName = pCsvDataRow.GetValue("VoiceId"); KrDebug.Log("Play Voice: " + "CharaId" + " = " + pCharaName + ", " + "VoiceId" + " = " + pVoiceName, typeof(KrCharagekiCommandSetText)); KrAudioSource pAudioSource = pUIController.PlayVoice(uCharaId, pVoiceName, pManager); if (pAudioSource == null) { // If there is no voice data, set the lip sync time from the length of the text pUIController.PlayLipSync(uCharaId, fReadingTime, pComment); } // Set log KrCharagekiLog pLog = new KrCharagekiLog(pCharaName, pComment); KrCharagekiLogContainer pLogContainer = pManager.GetLogContainer(); pLogContainer.AddLog(pLog); }