public ThrowBallsQuestionProvider()
        {
            currentQuestion = -1;

            // 10 QuestionPacks
            for (int i = 0; i < 10; i++)
            {
                List <ILivingLetterData> correctAnswers = new List <ILivingLetterData>();
                List <ILivingLetterData> wrongAnswers   = new List <ILivingLetterData>();

                LL_LetterData newLetterData = AppManager.I.Teacher.GetRandomTestLetterLL();

                if (newLetterData == null)
                {
                    return;
                }

                correctAnswers.Add(newLetterData);

                // At least 4 wrong letters
                while (wrongAnswers.Count < 4)
                {
                    var letter = AppManager.I.Teacher.GetRandomTestLetterLL();

                    if (!CheckIfContains(correctAnswers, letter) && !CheckIfContains(wrongAnswers, letter))
                    {
                        wrongAnswers.Add(letter);
                    }
                }

                var currentPack = new SampleQuestionPack(newLetterData, wrongAnswers, correctAnswers);
                questions.Add(currentPack);
            }
        }
Exemple #2
0
        private IQuestion GenerateCustomQuestion(ILivingLetterData question, LL_LetterData correctLetter)
        {
            if (question == null)
            {
                throw new ArgumentNullException("Question Null");
            }
            if (correctLetter == null)
            {
                throw new ArgumentNullException("correct Letter");
            }
            LL_WordData word   = question as LL_WordData;
            var         wordGO = ItemFactory.Instance.SpawnQuestion(word);

            var partsToRemove = ArabicAlphabetHelper.FindLetter(AppManager.I.DB, word.Data, correctLetter.Data, false);

            partsToRemove.Shuffle(); //pick a random letter

            string text = ArabicAlphabetHelper.GetWordWithMissingLetterText(
                word.Data, partsToRemove[0], RemovedLetterChar);

            if (config == DefaultQuestionType.MissingForm)
            {
                wordGO.Label.text = text;
                AddCompleteWordEvent(word.TextForLivingLetter, wordGO);
            }

            wordGO.InstaShrink();
            correctLetter.Form = partsToRemove[0].letterForm;

            return(new DefaultQuestion(wordGO, 1, dialogues));
        }
Exemple #3
0
        private IQuestion GenerateMissingLetterQuestion(ILivingLetterData data, ILivingLetterData letterToRemove)
        {
            var           imageData = new LL_ImageData(data.Id);
            LL_WordData   word      = (LL_WordData)data;
            LL_LetterData letter    = (LL_LetterData)letterToRemove;

            cacheCompleteWord = word.TextForLivingLetter;

            var partsToRemove = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).FindLetter(AppManager.I.DB, word.Data, letter.Data, LetterEqualityStrictness.Letter);

            partsToRemove.Shuffle(); //pick a random letter

            string text = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).GetWordWithMissingLetterText(
                word.Data, partsToRemove[0], removedLetterColor: "#000000");

            //Spawn word, then replace text with text with missing letter
            var wordGO = ItemFactory.Instance.SpawnQuestion(word);

            wordGO.InstaShrink();

            wordGO.Label.text   = text;
            cacheCompleteWordLL = wordGO;

            wordGO.SetExtendedBoxCollider();

            return(new ImageQuestion(wordGO, imageData, audioManager));
        }
Exemple #4
0
        private void FlashLetter(LL_LetterData letterToFlash)
        {
            int sequentialIndexOfLetter = flashedLettersInLiWVariation.Count(x => x.Id == letterToFlash.Id);

            UIController.instance.LabelRender.SetFlashingText(((LL_WordData)question).Data, letterToFlash, true, sequentialIndexOfLetter);
            flashedLettersInLiWVariation.Add(letterToFlash);
        }
Exemple #5
0
        void BuildTutorialLetter()
        {
            var alphabetCode = LanguageSwitcher.I.GetLangConfig(LanguageUse.Learning).Alphabet;

            LetterData data;

            switch (alphabetCode)
            {
            case AlphabetCode.latin:
                data = AppManager.I.DB.GetLetterDataById("A");
                break;

            case AlphabetCode.arabic:
                data = AppManager.I.DB.GetLetterDataById("beh");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            LL_LetterData LLdata = new LL_LetterData(data);

            game.tutorialLetter = GameObject.Instantiate(game.letterPrefab);
            game.tutorialLetter.SetActive(true);
            game.tutorialLetter.GetComponent <LivingLetterController>().Init(LLdata, _outline: true);
            game.tutorialLetter.GetComponent <LivingLetterController>().LabelRender.color     = Color.white;
            game.tutorialLetter.GetComponent <ColorTickle_LLController>().movingToDestination = false;
        }
Exemple #6
0
        public ILivingLetterData GetNextData()
        {
            LL_LetterData ld = letters[0];

            letters.RemoveAt(0);
            return(ld);
        }
Exemple #7
0
        public void SetLetter(LL_LetterData _data)
        {
            letterObject = _data;
            var text = _data.TextForLivingLetter;

            letterText.text = text;
            //tileText.text = text;
        }
Exemple #8
0
        void UpdateWord()
        {
            if (!isActiveAndEnabled)
            {
                return;
            }

            string word = string.Empty;

            for (int i = 0; i < CompletedLetters.Count; ++i)
            {
                LL_LetterData letter = CompletedLetters[i];

                if (splitMode)
                {
                    if (i == 0)
                    {
                        word = "<size=130%>" + letter.Data.GetStringForDisplay(letter.Form) + "</size>";
                    }
                    else if (i == 1)
                    {
                        word += "\n" + letter.Data.GetStringForDisplay(letter.Form);
                    }
                    else
                    {
                        word += " " + letter.Data.GetStringForDisplay(letter.Form);
                    }
                }
                else
                {
                    word += letter.Data.GetStringForDisplay(letter.Form);
                }
            }

            if (splitMode)
            {
                // Hack to fix space
                string placeholder = "<color=#0000>ﺟ</color>";
                for (int i = CompletedLetters.Count; i < 4; ++i)
                {
                    if (i == 0)
                    {
                        word = "<size=130%>" + placeholder + "</size>";
                    }
                    else if (i == 1)
                    {
                        word += "\n" + placeholder;
                    }
                    else
                    {
                        word += " " + placeholder;
                    }
                }
            }

            //WordLabel.SetText(word, !splitMode);
            WordLabel.SetText(word, false);
        }
Exemple #9
0
        void initCurrentLetter()
        {
            if (gameEnded)
            {
                return;
            }

            currentCharacter = null;
            currentTutorial  = null;

            TutorialUI.Clear(false);
            addLine();

            //get a new letter:
            IQuestionPack            newQuestionPack = MazeConfiguration.Instance.Questions.GetNextQuestion();
            List <ILivingLetterData> ldList          = (List <ILivingLetterData>)newQuestionPack.GetCorrectAnswers();
            LL_LetterData            ld = (LL_LetterData)ldList[0];
            int index = -1;

            if (allLetters.ContainsKey(ld.Id))
            {
                index = allLetters[ld.Id];
            }
            if (index == -1)
            {
                Debug.Log("Letter got from Teacher is: " + ld.Id + " - does not match 11 models we have, we will play sound of the returned data");
                index = Random.Range(0, prefabs.Count);
            }

            currentLL     = ld;
            currentPrefab = Instantiate(prefabs[index]);
            currentPrefab.GetComponent <MazeLetterBuilder>().build(() => {
                if (!isTutorialMode)
                {
                    MazeConfiguration.Instance.Context.GetAudioManager().PlayVocabularyData(
                        ld,
                        soundType: MazeConfiguration.Instance.GetVocabularySoundType()
                        );
                }

                foreach (Transform child in currentPrefab.transform)
                {
                    if (child.name == "Mazecharacter")
                    {
                        currentCharacter = child.GetComponent <MazeCharacter>();
                    }
                    else if (child.name == "HandTutorial")
                    {
                        currentTutorial = child.GetComponent <HandTutorial>();
                    }
                }

                currentCharacter.gameObject.SetActive(false);

                currentMazeLetter = currentPrefab.GetComponentInChildren <MazeLetter>();
            });
        }
Exemple #10
0
        public void SetQuestionText(LL_WordData word, LL_LetterData markedLetter, Color color)
        {
            string text  = ArabicAlphabetHelper.ProcessArabicString(word.Data.Arabic);
            var    parts = ArabicAlphabetHelper.FindLetter(AppManager.I.DB, word.Data, markedLetter.Data, false);

            if (parts.Count > 0)
            {
                text = ArabicTextUtilities.GetWordWithMarkedLetterText(word.Data, parts[0], color, ArabicTextUtilities.MarkType.SingleLetter);
            }
            letter.Init(word, text, 1.3f);
        }
        void BuildTutorialLetter()
        {
            LL_LetterData LLdata = new LL_LetterData(AppManager.I.DB.GetLetterDataById("beh"));

            game.tutorialLetter = Object.Instantiate(game.letterPrefab);
            game.tutorialLetter.SetActive(true);
            // HACK fix for the automatic reset of the color after update at Unity 5.4.2
            game.tutorialLetter.GetComponent <LivingLetterController>().Label.color = Color.white;
            game.tutorialLetter.GetComponent <LivingLetterController>().Init(LLdata);
            game.tutorialLetter.GetComponent <ColorTickle_LLController>().movingToDestination = false;
        }
Exemple #12
0
        public void SetQuestionText(LL_WordData word, LL_LetterData markedLetter, Color color)
        {
            string text  = LanguageSwitcher.LearningHelper.ProcessString(word.Data.Text);
            var    parts = LanguageSwitcher.LearningHelper.FindLetter(AppManager.I.DB, word.Data, markedLetter.Data, LetterEqualityStrictness.Letter);

            if (parts.Count > 0)
            {
                text = LanguageSwitcher.LearningHelper.GetWordWithMarkedLetterText(word.Data, parts[0], color, MarkType.SingleLetter);
            }
            letter.Init(word, text, 1.3f);
        }
Exemple #13
0
        public void spawnLetteAtTube()
        {
            int           index = UnityEngine.Random.Range(0, allLetters.Count);
            LL_LetterData ld    = (LL_LetterData)allLetters[index];

            allLetters.RemoveAt(index);

            //check which tube to activate
            currentTube   = "ABCD".IndexOf(ld.Data.SoundZone);
            currentLetter = letterManager.spawnLetter(ld);
            currentLetter.MoveBy(new UnityEngine.Vector3(-11, 0, 0), 1.8f);
        }
Exemple #14
0
        ArabicAlphabetHelper.ArabicStringPart RemoveLetterFromQuestion(LL_LetterData letter)
        {
            LL_WordData word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();

            LivingLetterController letterView = m_aoCurrentQuestionScene[0].GetComponent <LetterBehaviour>().mLetter;

            var parts = ArabicAlphabetHelper.FindLetter(AppManager.I.DB, word.Data, letter.Data, true);

            var partToRemove = parts[0];

            letterView.Label.text = ArabicAlphabetHelper.GetWordWithMissingLetterText(word.Data, partToRemove, mk_sRemovedLetterChar);
            return(partToRemove);
        }
Exemple #15
0
        private IEnumerator SpawnLettersCoroutine(List <ILivingLetterData> lettersToSpawn, Action spawnOverCallback)
        {
            PlayCartoonFightSfx();

            yield return(new WaitForSeconds(1));

            List <int> indices = new List <int>();

            for (int i = 0; i < lettersToSpawn.Count; i++)
            {
                indices.Add(i);
            }

            bool throwLetterToTheRight = Random.Range(1, 40) % 2 == 0;

            bool spawnLettersInOrder  = MixedLettersGame.instance.Difficulty == MixedLettersGame.MixedLettersDifficulty.VeryEasy;
            int  numDegreesOfRotation = GetNumDegreesOfRotation();

            for (int i = 0; i < lettersToSpawn.Count; i++)
            {
                int indexToSpawn = spawnLettersInOrder ? i : indices[Random.Range(0, indices.Count)];
                indices.Remove(indexToSpawn);

                LL_LetterData letterToSpawn = (LL_LetterData)lettersToSpawn[indexToSpawn];

                SeparateLetterController separateLetterController = separateLetterControllers[i];
                separateLetterController.Enable();
                separateLetterController.SetPosition(transform.position, false);
                separateLetterController.SetLetter(letterToSpawn);
                separateLetterController.SetRotation(new Vector3(0, 0, Random.Range(0, numDegreesOfRotation + 1) * -90));
                separateLetterController.SetIsKinematic(false);
                separateLetterController.SetCorrectDropZone(MixedLettersGame.instance.dropZoneControllers[indexToSpawn]);
                MixedLettersGame.instance.dropZoneControllers[indexToSpawn].correctLetter = separateLetterController;
                separateLetterController.SetIsSubjectOfTutorial(MixedLettersGame.instance.roundNumber == 0 && indexToSpawn == 0 && MixedLettersGame.instance.TutorialEnabled);
                separateLetterController.AddForce(new Vector3(throwLetterToTheRight ? Random.Range(2f, 6f) : Random.Range(-6f, -2f), Constants.GRAVITY.y * -0.45f), ForceMode.VelocityChange);

                throwLetterToTheRight = !throwLetterToTheRight;

                MixedLettersConfiguration.Instance.Context.GetAudioManager().PlaySound(Sfx.ThrowObj);
                MixedLettersConfiguration.Instance.Context.GetAudioManager().PlayVocabularyData(letterToSpawn);

                yield return(new WaitForSeconds(0.75f));
            }

            yield return(new WaitForSeconds(1));

            audioSource.Stop();

            spawnOverCallback.Invoke();
        }
Exemple #16
0
        StringPart RemoveLetterFromQuestion(LL_LetterData letter)
        {
            LL_WordData word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();

            LivingLetterController letterView = m_aoCurrentQuestionScene[0].GetComponent <LetterBehaviour>().mLetter;

            bool findSameForm = MissingLetterConfiguration.Instance.Variation == MissingLetterVariation.LetterForm;
            var  parts        = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).FindLetter(AppManager.I.DB, word.Data, letter.Data, findSameForm ? LetterEqualityStrictness.WithActualForm : LetterEqualityStrictness.Letter);
            //Debug.LogWarning("Looking for letter " + letter.Id + " into word " + word.Id);

            var partToRemove = parts[0];

            letterView.LabelRender.text = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).GetWordWithMissingLetterText(word.Data, partToRemove);
            return(partToRemove);
        }
        void UpdateWord()
        {
            if (!isActiveAndEnabled)
            {
                return;
            }

            string word = string.Empty;

            for (int i = 0; i < CompletedLetters.Count; ++i)
            {
                LL_LetterData letter = CompletedLetters[i];
                word += letter.Data.GetChar();
            }

            WordLabel.SetText(word, true);
        }
        void RemoveLetterfromQuestion()
        {
            LL_WordData word    = (LL_WordData)m_oCurrQuestionPack.GetQuestion();
            var         Letters = ArabicAlphabetHelper.ExtractLetterDataFromArabicWord(word.Data.Arabic);

            LL_LetterData letter = (LL_LetterData)m_oCurrQuestionPack.GetCorrectAnswers().ToList()[0];
            int           index  = 0;

            for (; index < Letters.Count; ++index)
            {
                if (Letters[index].Id == letter.Id)
                {
                    break;
                }
            }

            LetterObjectView tmp = m_aoCurrentQuestionScene[0].GetComponent <LetterBehaviour>().mLetter;

            tmp.Label.text = tmp.Label.text.Remove(index, 1);
            tmp.Label.text = tmp.Label.text.Insert(index, mk_sRemovedLetterChar);
        }
        public ColorTickleLetterProvider()
        {
            m_oPacks = new List <IQuestionPack>();
            //10 questions
            for (int i = 0; i < 10; i++)
            {
                List <ILivingLetterData> correctAnswers = new List <ILivingLetterData>();
                List <ILivingLetterData> wrongAnswers   = new List <ILivingLetterData>();

                LL_LetterData _NewLetterData = AppManager.I.Teacher.GetRandomTestLetterLL(new LetterFilters(excludeDiacritics: true));

                if (_NewLetterData == null)
                {
                    return;
                }

                correctAnswers.Add(_NewLetterData);

                SampleQuestionPack currentPack = new SampleQuestionPack(_NewLetterData, wrongAnswers, correctAnswers);
                m_oPacks.Add(currentPack);
            }
        }
        private IQuestion GenerateMissingLetterQuestion(ILivingLetterData data, ILivingLetterData letterToRemove)
        {
            var           imageData = new LL_ImageData(data.Id);
            LL_WordData   word      = (LL_WordData)data;
            LL_LetterData letter    = (LL_LetterData)letterToRemove;
            var           Letters   = ArabicAlphabetHelper.ExtractLetterDataFromArabicWord(word.Data.Arabic);

            int index = 0;

            for (; index < Letters.Count; ++index)
            {
                if (Letters[index].Id == letter.Id)
                {
                    break;
                }
            }

            var wordGO = LivingLetterFactory.Instance.SpawnQuestion(word);

            wordGO.Label.text = wordGO.Label.text.Remove(index, 1);
            wordGO.Label.text = wordGO.Label.text.Insert(index, RemovedLetterChar);

            return(new ImageQuestion(wordGO, imageData));
        }
Exemple #21
0
        private void FlashLetter(LL_LetterData letterToFlash)
        {
            var word = ((LL_WordData)question).Data;
            int numTimesLetterHasBeenFlashed = flashedLettersInLiWVariation.Count(x => x.Id == letterToFlash.Id);
            var letterPartToFlash            = ArabicAlphabetHelper.FindLetter(AppManager.I.DB, word, letterToFlash.Data, false)[numTimesLetterHasBeenFlashed];

            flashedLettersInLiWVariation.Add(letterToFlash);

            int toCharIndex = letterPartToFlash.toCharacterIndex;

            if (letterPartToFlash.fromCharacterIndex != letterPartToFlash.toCharacterIndex)
            {
                var hexCode = ArabicAlphabetHelper.GetHexUnicodeFromChar(word.Arabic[letterPartToFlash.toCharacterIndex]);
                if (hexCode == "0651")   // Shaddah
                {
                    toCharIndex -= 1;
                }
            }

            flashingTextCoroutine = ArabicTextUtilities.GetWordWithFlashingText(word, letterPartToFlash.fromCharacterIndex, toCharIndex, Color.green, FLASHING_TEXT_CYCLE_DURATION, int.MaxValue,
                                                                                text => {
                UIController.instance.SetText(text);
            }, true);
        }
 public void Init(LL_LetterData _letterData)
 {
     LetterData       = _letterData;
     LetterLabel.text = LetterData.TextForLivingLetter;
 }
Exemple #23
0
        public void EnterState()
        {
            if (game.showTutorial)
            {
                game.QuestionManager.crowd.MaxConcurrentLetters = 2;
            }
            else
            {
                game.QuestionManager.crowd.MaxConcurrentLetters = UnityEngine.Mathf.RoundToInt(4 + FastCrowdConfiguration.Instance.Difficulty * 4);
            }

            game.CurrentChallenge.Clear();
            game.NoiseData.Clear();

            var provider = FastCrowdConfiguration.Instance.Questions;
            var question = provider.GetNextQuestion();

            game.CurrentQuestion = question;

            if (question == null)
            {
                game.SetCurrentState(game.EndState);
                return;
            }

            if (FastCrowdConfiguration.Instance.Variation == FastCrowdVariation.Letter)
            {
                LL_LetterData isolated = new LL_LetterData(question.GetQuestion().Id);
                isolated.Position = Db.LetterPosition.Isolated;
                game.CurrentChallenge.Add(isolated);

                string isolatedChar = isolated.Data.GetCharFixedForDisplay(Db.LetterPosition.Isolated);
                string initialChar  = isolated.Data.GetCharFixedForDisplay(Db.LetterPosition.Initial);
                string medialChar   = isolated.Data.GetCharFixedForDisplay(Db.LetterPosition.Medial);
                string finalChar    = isolated.Data.GetCharFixedForDisplay(Db.LetterPosition.Final);

                for (int i = 0; i < 3; ++i)
                {
                    LL_LetterData data = new LL_LetterData(question.GetQuestion().Id);

                    if (i == 0)
                    {
                        if (string.IsNullOrEmpty(initialChar) ||
                            initialChar == isolatedChar)
                        {
                            continue;
                        }

                        data.Position = Db.LetterPosition.Initial;
                    }
                    else if (i == 1)
                    {
                        if (string.IsNullOrEmpty(medialChar) ||
                            medialChar == initialChar ||
                            medialChar == isolatedChar)
                        {
                            continue;
                        }

                        data.Position = Db.LetterPosition.Medial;
                    }
                    else if (i == 2)
                    {
                        if (string.IsNullOrEmpty(finalChar) ||
                            finalChar == medialChar ||
                            finalChar == initialChar ||
                            finalChar == isolatedChar)
                        {
                            continue;
                        }

                        data.Position = Db.LetterPosition.Final;
                    }

                    game.CurrentChallenge.Add(data);
                }

                if (game.CurrentChallenge.Count < 2)
                {
                    game.SetCurrentState(this);
                    return;
                }
            }
            else
            {
                foreach (var l in question.GetCorrectAnswers())
                {
                    game.CurrentChallenge.Add(l);
                }
            }

            //if (FastCrowdConfiguration.Instance.Variation != FastCrowdVariation.Alphabet)
            {
                // Add wrong data too
                if (question.GetWrongAnswers() != null)
                {
                    foreach (var l in question.GetWrongAnswers())
                    {
                        game.NoiseData.Add(l);
                    }
                }
            }

            ++game.QuestionNumber;

            if (game.CurrentChallenge.Count > 0)
            {
                // Show question
                if (!game.ShowChallengePopupWidget(false, OnPopupCloseRequested))
                {
                    if (game.showTutorial)
                    {
                        game.SetCurrentState(game.TutorialState);
                    }
                    else
                    {
                        game.SetCurrentState(game.PlayState);
                    }
                }
            }
            else
            {
                // no more questions
                game.SetCurrentState(game.EndState);
            }
        }
Exemple #24
0
 public DancingDotsQuestionsPack(LL_LetterData LLData)
 {
     question = correctAnswers = LLData;
 }
 public void SetLetter(LL_LetterData letterData)
 {
     this.letterData = letterData;
     letterObjectView.Init(letterData);
 }
Exemple #26
0
        void initCurrentLetter()
        {
            currentCharacter = null;
            currentTutorial  = null;

            TutorialUI.Clear(false);
            addLine();


            //get a new letter:
            IQuestionPack            newQuestionPack = MazeConfiguration.Instance.Questions.GetNextQuestion();
            List <ILivingLetterData> ldList          = (List <ILivingLetterData>)newQuestionPack.GetCorrectAnswers();
            LL_LetterData            ld = (LL_LetterData)ldList[0];
            int index = -1;

            if (allLetters.ContainsKey(ld.Id))
            {
                index = allLetters[ld.Id];
            }
            if (index == -1)
            {
                Debug.Log("Letter got from Teacher is: " + ld.Id + " - does not match 11 models we have, we will play sound of the returned data");
                index = UnityEngine.Random.Range(0, prefabs.Count);
            }
            currentLL     = ld;
            currentPrefab = (GameObject)Instantiate(prefabs[index]);

            /*int index = allLetters.IndexOf(ld.Id);
             *
             * int found = -1;
             * for(int i =0; i < prefabs.Count; ++i)
             * {
             *  if(prefabs[i].GetComponent<MazeLetterBuilder>().letterDataIndex == index)
             *  {
             *      found = i;
             *
             *      break;
             *  }
             * }
             *
             */


            //currentPrefab.GetComponent<MazeLetterBuilder>().letterData = ld;
            currentPrefab.GetComponent <MazeLetterBuilder>().build(() => {
                if (!isTutorialMode)
                {
                    MazeConfiguration.Instance.Context.GetAudioManager().PlayLetterData(ld);
                }



                foreach (Transform child in currentPrefab.transform)
                {
                    if (child.name == "Mazecharacter")
                    {
                        currentCharacter = child.GetComponent <MazeCharacter>();
                    }
                    else if (child.name == "HandTutorial")
                    {
                        currentTutorial = child.GetComponent <HandTutorial>();
                    }
                }

                currentCharacter.gameObject.SetActive(false);
            });
        }
Exemple #27
0
        void UpdateWord(bool onlyIfActive = true)
        {
            if (onlyIfActive && !isActiveAndEnabled)
            {
                return;
            }

            string word = string.Empty;

            for (int i = 0; i < CompletedLetters.Count; ++i)
            {
                LL_LetterData letter = CompletedLetters[i];

                if (splitMode)
                {
                    if (i == 0)
                    {
                        word = $"<size=130%>{letter.Data.GetStringForDisplay(letter.Form, true)}</size>";
                    }
                    else if (i == 1)
                    {
                        word += $"\n{letter.Data.GetStringForDisplay(letter.Form, true)}";
                    }
                    else
                    {
                        word += $" {letter.Data.GetStringForDisplay(letter.Form, true)}";
                    }
                }
                else
                {
                    if (letter.Id == " ")
                    {
                        word += invisiblePlaceholder;
                    }
                    else
                    {
                        word += letter.Data.GetStringForDisplay(letter.Form, true);
                    }
                }
            }

            if (splitMode)
            {
                // Hack to fix space
                for (int i = CompletedLetters.Count; i < 4; ++i)
                {
                    if (i == 0)
                    {
                        word = $"<size=130%>{invisiblePlaceholder}</size>";
                    }
                    else if (i == 1)
                    {
                        word += $"\n{invisiblePlaceholder}";
                    }
                    else
                    {
                        word += $" {invisiblePlaceholder}";
                    }
                }
            }

            WordLabel.SetTextUnfiltered(word);
        }
 public SickLettersQuestionsPack(LL_LetterData LLData)
 {
     question = correctAnswers = LLData;
 }
Exemple #29
0
        private IEnumerator EndRound_Coroutine(bool win)
        {
            var winDelay1         = leftArea.celebrationDuration + 1.5f;
            var winDelay2         = 1.5f;
            var friendlyExitDelay = leftArea.friendlyExitDuration;
            var loseDelay         = 1.5f;

            HideLetterPicker();

            if (win)
            {
                Debug.Log("Win");

                if (isTutorialRound)
                {
                    Debug.Log("Cleared tutorial");
                    HideTutorialUI();
                }

                List <LL_LetterData> letters = new List <LL_LetterData>();

                foreach (var l in commonLetters)
                {
                    LL_LetterData data = l as LL_LetterData;

                    if (data != null)
                    {
                        letters.Add(data);
                    }
                }

                livingLetter1.MarkLetters(letters, Color.green);
                livingLetter2.MarkLetters(letters, Color.green);

                GetConfiguration().Context.GetAudioManager().PlaySound(Sfx.Win);
                leftArea.Celebrate();
                rightArea.Celebrate();
                leftArea.HighFive(leftArea.celebrationDuration);
                rightArea.HighFive(rightArea.celebrationDuration);
                roundResultAnimator.ShowWin();
                if (!isTutorialRound)
                {
                    CurrentScore++;
                    Context.GetLogManager().OnAnswered(wordData1, true);
                    Context.GetLogManager().OnAnswered(wordData2, true);
                }

                // Exit
                yield return(new WaitForSeconds(winDelay1));

                roundResultAnimator.Hide();
                leftArea.MakeFriendlyExit();
                rightArea.MakeFriendlyExit();

                // Go to Friends Zone
                if (!isTutorialRound)
                {
                    yield return(new WaitForSeconds(friendlyExitDelay));

                    leftArea.GoToFriendsZone(FriendsZonesManager.instance.currentZone);
                    rightArea.GoToFriendsZone(FriendsZonesManager.instance.currentZone);
                    FriendsZonesManager.instance.IncrementCurrentZone();
                }

                // Hide answer Drop Zone
                yield return(new WaitForSeconds(winDelay2));

                HideDropZone();

                if (isTutorialRound)
                {
                    isTutorialRound = false;
                    IntroductionState.OnFinishedTutorial();
                }
                else
                {
                    NextRound();
                }
            }
            else
            {
                Debug.Log("Lose");

                Context.GetLogManager().OnAnswered(wordData1, false);
                Context.GetLogManager().OnAnswered(wordData2, false);

                GetConfiguration().Context.GetAudioManager().PlaySound(Sfx.Lose);
                yield return(new WaitForSeconds(loseDelay));

                HideDropZone();
                roundResultAnimator.ShowLose();
                //TutorialUI.MarkNo(Vector3.zero, TutorialUI.MarkSize.Huge);
                NextRound(loseDuration);
            }
        }