void Update() { switch (currentState) { case State.INITIAL: //make sure game ready to start go asking state IK.gameObject.SetActive(true); gameOverPannel.SetActive(false); PLAYER.StartPlayer(PLAYER.getSelectedDifficulty()); ZoneObjects = CreateObjectList(PLAYER.getSelectedZone()); UpdateRemainLife(); Invoke("PlayZoneMusic", 0.2f); currentState = State.ASKING; break; case State.ASKING: //get object from pool and call newGuess function and go guessing state Invoke("pushNewGuess", 0.8f); currentState = State.GUESSING; break; case State.GUESSING: if (IK.isPressedAnyKey()) { Guesster.SearchLetter(IK.GetPressedKey()); UpdateRemainLife(); } if (Guesster.succesfulGuess) { Guesster.succesfulGuess = false; //TODO check for is it working ZoneObjects.Remove(Guesster.GetLastGivenGameObject()); currentState = State.NEXT_WORD; break; } //check life count and if die go game over pannel if guess succes go next word state if (PLAYER.AmIDead()) { currentState = State.GAME_OVER; } break; case State.NEXT_WORD: //make sure is there object in pool and if it go ask if go game over state if (ZoneObjects.Any()) { currentState = State.ASKING; } else { currentState = State.GAME_OVER; } break; case State.GAME_OVER: IK.gameObject.SetActive(false); gameOverPannel.SetActive(true); if (PLAYER.GetRemainingLife() > 0) { gameOverTxt.text = "YOU WIN \n total word guessed : " + PLAYER.GetSuccesfulGueesCount() + " \n wrong gues :" + PLAYER.GetWrongGuessCount(); } else { gameOverTxt.text = "YOU LOSE \n total word guessed : " + PLAYER.GetSuccesfulGueesCount() + " \n wrong gues :" + PLAYER.GetWrongGuessCount(); } break; } }