void Start( )
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Normal);
     screens       = new GameObject[] { StartScreen, PlayScreen, PauseScreen, GameOverScreen, HelpScreen };
     moles         = moleContainer.GetComponentsInChildren <Mole>();
     GameIsRunning = false;
     SetEnabledScreen(ScreenType.Start);
     targetColors     = new Color[colorfulInfoTexts.Length];
     colorChangeTimer = new Timer(1f, ChangeColor);
     spawnTimer       = new RandomizedIncreaseingTimer(initializer, Spawn);
 }
    void GUIGameOver( )
    {
        GameIsRunning = false;
        SetEnabledScreen(ScreenType.GameOver);
        ScoreEndText.text = $@"Game Over! You got
{score} points!!"
        ;
        var isNewHighScore = PlayerPrefsManager.IsNewHighscore(score);

        NewHighscoreTextDisplay.gameObject.SetActive(isNewHighScore);
        if (isNewHighScore)
        {
            CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Win);
        }
        else
        {
            CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Lose);
        }
    }
 void ShowHelpScreen( )
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Normal);
     SetEnabledScreen(ScreenType.Help);
     GameIsRunning = false;
 }
 void Resume( )
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Normal);
     SetEnabledScreen(ScreenType.Play);
     GameIsRunning = true;
 }
 void Pause( )
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Normal);
     SetEnabledScreen(ScreenType.Pause);
     GameIsRunning = false;
 }
 void DecreaseScore(int points)
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.AntiScore);
     score -= points;
 }
 void IncreaseScore(int points)
 {
     CheerleaderCoordinator.ChangeAnimation(CheerleaderCoordinator.CheerState.Score);
     score += points;
 }