Пример #1
0
        static void Prefix(GoalSprite __instance)
        {
            var txtDir      = __instance.GetType().GetField("txtDir", BindingFlags.Public | BindingFlags.Instance);
            var txtDirValue = txtDir.GetValue(__instance);
            var txtName     = txtDirValue.ToString().Split('\\')[2].Split('.')[0];

            /*
             * Files starting with 'm', '10' or that contains 'h', don't contain any choices that needs to be dubbed
             * or don't have any choices at all
             * '6h' is an exception
             */
            if ((txtName.ToLower().Contains('h') && txtName.ToLower() != "6h") ||
                txtName.StartsWith("10") || txtName.StartsWith("m")
                )
            {
                return;
            }

            var waitingForChoiceField = __instance.GetType().GetField("waitingForChoice", BindingFlags.NonPublic | BindingFlags.Instance);

            waitingForChoice = (bool)waitingForChoiceField.GetValue(__instance);

            var submitBlockField = __instance.GetType().GetField("submitBlock", BindingFlags.NonPublic | BindingFlags.Instance);

            submitBlock = (bool)submitBlockField.GetValue(__instance);

            if (waitingForChoice)
            {
                if (Input.GetButton("Submit"))
                {
                    if (!submitBlock)
                    {
                        //Debug.LogWarning("Player choice index: "+ playerChoiceIndex);

                        var dialogueIndexField = __instance.GetType().GetField("dialogueIndex", BindingFlags.NonPublic | BindingFlags.Instance);
                        playerChoiceIndex = dialogueIndexField.GetValue(__instance).ToString();

                        var voiceAudioPath = Main.currentDirectory + "\\audio\\" + txtName + "\\answer_" + playerChoiceIndex + ".wav";
                        Main.instance.playAudio(voiceAudioPath);
                    }
                }
            }
        }
Пример #2
0
        static void Prefix(GoalSprite __instance, int a)
        {
            //TO-DO
            // List of excluded audio indexes, lines with nothing wrote just, dots or something like that
            // '9_4' file index 8,9,10 is just '...' I don't think this need to be dubbed

            var txtDir      = __instance.GetType().GetField("txtDir", BindingFlags.Public | BindingFlags.Instance);
            var txtDirValue = txtDir.GetValue(__instance);
            var txtName     = txtDirValue.ToString().Split('\\')[2].Split('.')[0];

            if (Main.excludedDialogueFiles.Contains(txtName))
            {
                return;
            }

            var dialogueArrayField = __instance.GetType().GetField("dialogueArray", BindingFlags.Public | BindingFlags.Instance);

            dialogueArray = (dialogueElement[])dialogueArrayField.GetValue(__instance);

            if (dialogueArray[a].talkText[0] != -1)
            {
                if (dialogueArray[a].talkText.Length > 1)
                {
                    filename = dialogueArray[a].talkText[0] + "_" + dialogueArray[a].talkText[1];
                    //Debug.LogWarning(dialogueArray[a].talkText[0] + " & " + dialogueArray[a].talkText[1]);
                }
                else
                {
                    filename = dialogueArray[a].talkText[0].ToString();
                    //Debug.LogWarning(dialogueArray[a].talkText[0]);
                }
            }
            else
            {
                return;
            }

            var voiceAudioPath = Main.currentDirectory + "\\audio\\" + txtName + "\\" + filename + ".wav";

            Main.instance.playAudio(voiceAudioPath);
        }