/// <summary> /// Method to instantiate a letterbutton /// </summary> /// <param name="letter"></param> /// <param name="isFirstLetter"></param> /// <param name="isSecondLetter"></param> /// <param name="row"></param> /// <param name="index"></param> /// <returns></returns> public LetterBlock InstantiateLetterButton(char letter, bool isFirstLetter = false, bool isSecondLetter = false, int row = 1, int?index = null) { LetterBlock block; block = (isFirstLetter || isSecondLetter) ? FixedLettersBlockObject : PlayerLetterBlockObject; return(Spawn(block, this, lttrBlock => { lttrBlock.IsFirstLetter = isFirstLetter; lttrBlock.IsSecondLetter = isSecondLetter; lttrBlock.OnLetterTouched += LetterTouched; //Todo //lttrBlock.OnLetterDragged += LetterDragged; lttrBlock.GetComponentsInChildren <Text>()[0].text = letter.ToString().ToUpper(); if (letter != '?') { lttrBlock.GetComponentsInChildren <Text>()[1].text = TheLetterManager.CharactersValues.First(x => x.Key == char.ToLower(letter)).Value.ToString(); } else { lttrBlock.GetComponentsInChildren <Text>()[1].text = ""; } GameObject parentRow = GetRightRow(row); lttrBlock.transform.SetParent(parentRow.transform, false); if (index != null) { lttrBlock.transform.SetSiblingIndex((int)index); } PlayerLetters.Add(new LetterPosition(row, lttrBlock.transform.GetSiblingIndex(), lttrBlock)); })); }
/// <summary> /// Method to add a char to a letterBlock /// </summary> /// <param name="row"></param> /// <param name="index"></param> /// <returns>LetterBlock</returns> public LetterBlock AddLetter(int row, int index) { List <char> myLetters = GetPlayerLetters().Select(p => char.ToLower(p?.LetterBlock?.GetLetter() ?? default)).ToList(); char[] letters = TheLetterManager.GetLetters(1, myLetters); LetterBlock block = InstantiateLetterButton(letters[0], false, false, row, index); PlayerLetters.Add(new LetterPosition(row, index, block)); return(block); }