Beispiel #1
0
    IEnumerator PlayGame()
    {
        yield return(new WaitForSeconds(2f));

        string[] wordArray = MessageString.Split(' ');

        foreach (string word in wordArray)
        {
            char[] charArray = word.ToCharArray();

            foreach (char character in charArray)
            {
                string testCharacter = character.ToString();
                string testCode      = MorseCode.EnglishToMorseCode(testCharacter.ToString());
                TargetCodeString = testCode;

                transmission += character;
                if (transmission.Length == 1)
                {
                    TransmissionMessageText.text = "<color=#ff0000ff>" + character + "</color>";
                }
                else
                {
                    TransmissionMessageText.text = transmission.Substring(0, transmission.Length - 1) + "<color=#ff0000ff>" + character + "</color>";
                }

                bool correct = false;
                while (!correct)
                {
                    yield return(StartCoroutine(PlayCode(testCode)));

                    playing = true;

                    while (playing)
                    {
                        string stringToCompare = TargetCodeString.Substring(0, InputCodeString.Length);


                        if (InputCodeString != stringToCompare || timesUp)
                        {
                            if (timesUp)
                            {
                                timesUp = false;
                                TransmissionStatusText.text = "Times Up";
                            }
                            else
                            {
                                TransmissionStatusText.text = "Incorrect!";
                            }
                            ///TODO play noise?
                            perfectWord = false;
                            playing     = false;
                            yield return(new WaitForSeconds(.5f));

                            InputCodeString = "";
                            OutgoingTransmissionText.text = "";

                            TransmissionStatusText.text = "Try Again!";
                        }
                        if (TargetCodeString.Length == InputCodeString.Length)
                        {
                            TransmissionStatusText.text = "Correct!";
                            UpdateScore();
                            playing = false;
                            correct = true;
                            yield return(new WaitForSeconds(.25f));

                            InputCodeString = "";
                            OutgoingTransmissionText.text = "";
                            IncomingTransmissionText.text = "";
                            TransmissionStatusText.text   = "";
                        }

                        yield return(null);
                    }
                    yield return(null);
                }
            }

            WordPerfect(perfectWord);


            transmission += " ";
        }
        ResetButton.gameObject.SetActive(true);

        if (scoreValue > highValue)
        {
            PlayerPrefs.SetInt("HighScore", scoreValue);
        }
        transmission = "";
        TransmissionMessageText.text = MessageString;
        TransmissionStatusText.text  = "Transmission Recieved!";

        if (LevelNumber > PlayerPrefs.GetInt("HighestLevel", 0))
        {
            PlayerPrefs.SetInt("HighestLevel", LevelNumber);
        }

        Debug.Log("done");
    }