// Check whether the current array of elements matches the answer array bool checkArrMatch(List <string> currList, List <string> answerList) { if (currList.Count == answerList.Count) { for (int i = 0; i < currList.Count; i++) { if (currList [i] != answerList [i]) { //reload the level because the compound wasn't correct. PlayerPrefsHelper.decreaseScore(2); SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); return(false); } } return(true); } return(false); }
//-- handle the box touching movement. void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("element")) { //SoundManager.instance.RandomizeSfx(collisionSound); //SoundManager.instance.PlaySingle(collisionSound); switch (i) { case 0: block1.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 1: block2.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 2: block3.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 3: block4.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 4: block5.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 5: block6.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 6: block7.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 7: block8.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; case 8: block9.GetComponent <SpriteRenderer>().sprite = other.GetComponent <SpriteRenderer>().sprite; break; } order += other.name.ToLower(); other.GetComponent <SpriteRenderer>().enabled = false; other.GetComponent <BoxCollider2D>().enabled = false; i++; PlayerPrefsHelper.incrementScore(1); num--; collisionSound.Play(); //print("element numbers : " + order); //print("total number of blocks : " + num); //print("score : " + PlayerPrefsHelper.getPlayerScore()); //-- depending on the number of blocks make sure that the chemical //-- compounds are in the correct order. If they are load the next scene //-- or restart the game. if (num == 0) { collisionSound.Play(); for (int j = 0; j < win.Count; j++) { if (order.CompareTo(win[j]) == 0) { winstate = true; break; } } if (winstate) { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); PlayerPrefsHelper.incrementScore(5); } else { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); PlayerPrefsHelper.decreaseScore(2); } } } }