private void SetUpRoom() { picture.sprite = diaryPictures[selectedPictures[currentPicture]].GetComponent <Image>().sprite; //Slice the texture and prepare the 9 pieces int current = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { slicedSprites[current] = Sprite.Create(picture.sprite.texture, new Rect(333 * i, 333 * j, 333, 333), new Vector2(0.5f, 0.5f), 333.0f); current++; } } //Assign and shuffle the pieces shuffleOrder = shuffleOrder.OrderBy(x => rnd.Next()).ToList(); for (int i = 0; i < 9; i++) { pieces[i].sprite = slicedSprites[shuffleOrder[i]]; PicturePiece piece = pieces[i].GetComponent <PicturePiece>(); piece.PictureID = shuffleOrder[i]; piece.ResetPiece(); } }
public void VerifyCombination(PlayerControllerMap player) { int winCount = 0; if (currentPicture == 0) { for (int i = 0; i < 9; i++) { PicturePiece piece = pieces[i].GetComponent <PicturePiece>(); if (piece.Active) { if (firstWinnerIndexes.Contains(piece.PictureID)) { winCount++; } else { winCount--; } } } if (winCount == 3) { currentPicture++; FindObjectOfType <AudioManager>().Play("MemoryFirstRight"); SetUpRoom(); } else { FindObjectOfType <AudioManager>().Play("MemoryWrong"); player.IncrementTimer(-20); } } else if (currentPicture == 1) { for (int i = 0; i < 9; i++) { PicturePiece piece = pieces[i].GetComponent <PicturePiece>(); if (piece.Active) { if (secondWinnerIndexes.Contains(piece.PictureID)) { winCount++; } else { winCount--; } } } if (winCount == 3) { FindObjectOfType <AudioManager>().Play("MemorySecondRight"); StartCoroutine(myRoom.ExitDoor.OpenDoorsWithDelay(0.5f)); } else { FindObjectOfType <AudioManager>().Play("MemoryWrong"); player.IncrementTimer(-20); } } }