/// <summary> /// Method that is called when a letter is touched /// </summary> /// <param name="block"></param> public void LetterTouched(LetterBlock block) { bool canMove = GameInstance.instance.IsMultiplayer ? (bool)PhotonNetwork.LocalPlayer.CustomProperties["CanMove"] : Player.CanMove; if (!canMove) { return; } // Wanneer hij in de lijst placedLetters staat, moet deze terug naar beneden gezet worden, anders naar boven if (PlacedLetters.Select(x => x.LetterBlock).Contains(block)) { RemoveLetterFromWritingBoardToPlayerBoard(block); CheckWordAndSetSubmitButtonState(); return; } // When firstletter isn't placed yet, make sure second letter does nothing if (block == SecondLetterBlock && !PlacedLetters.Select(x => x.LetterBlock).Contains(FirstLetterBlock)) { return; } // Wanneer er meer dan 12 zijn, niks doen if (PlacedLetters.Count(x => x.LetterBlock != null) >= 12) { return; } // Find the block in de playerletters LetterPosition letterBlock = PlayerLetters.FirstOrDefault(x => x.LetterBlock == block); // Find the first empty block in PlacedLetters LetterPosition EmptyLetterBlock = PlacedLetters.FirstOrDefault(x => x.LetterBlock == null); // De geklikte letter toevoegen aan EmptyLetterBlock en values overnemen EmptyLetterBlock.AddLetter(block, letterBlock.GetCurrentIndex(), letterBlock.GetRow()); // Het lege object vinden om te kunnen destroyen Transform t = WritingBoard.transform.GetChild(EmptyLetterBlock.GetCurrentIndex()); Destroy(t.gameObject); // Het geklikte blokje verplaatsen naar de plaats van het lege object //block.transform.localScale -= new Vector3(0.1f, 0, 0); block.transform.SetParent(WritingBoard.transform, false); block.transform.SetSiblingIndex(EmptyLetterBlock.GetCurrentIndex()); // Een lege placeholder plaatsen waar de letter vandaan is gehaald GameObject ph = Instantiate(PlaceHolderObject); GameObject parentRow = GetRightRow(letterBlock.GetRow()); ph.transform.SetParent(parentRow.transform, false); ph.transform.SetSiblingIndex(letterBlock.GetCurrentIndex()); CheckWordAndSetSubmitButtonState(); }
/// <summary> /// Gets the letters to play with /// </summary> /// <returns>List of LetterPosition</returns> public List <LetterPosition> GetPlayerLetters() { List <LetterPosition> playerLetters = new List <LetterPosition>(); for (int row = 1; row <= 3; row++) { GameObject r = GetRightRow(row); LetterBlock[] b = r.GetComponentsInChildren <LetterBlock>(); foreach (LetterBlock block in b) { LetterPosition pos = PlayerLetters.FirstOrDefault(p => p.LetterBlock == block); playerLetters.Add(new LetterPosition(pos.GetRow(), pos.GetOldIndex(), block)); } } return(playerLetters); }