public EndScreen CreateEndScreen(DataType.Minigame game, DataType.GameEnd type)
    {
        print("Created End Screen of type: " + type);
        EndScreen screen = Instantiate(GameManager.Instance.endingScreenPrefab).GetComponent <EndScreen> ();

        screen.typeOfGame   = game;
        screen.typeOfScreen = type;

        switch (type)
        {
        case DataType.GameEnd.EarnedSticker:
            screen.EarnedSticker();
            break;

        case DataType.GameEnd.CompletedLevel:
            screen.CompletedLevel();
            break;

        case DataType.GameEnd.FailedLevel:
            screen.FailedLevel();
            break;

        default:
            break;
        }

        return(screen);
    }
    public virtual EndScreen GameOver(DataType.GameEnd typeOfEnd)
    {
        switch (typeOfEnd)
        {
        case DataType.GameEnd.EarnedSticker:
            SoundManager.Instance.PlaySFXClip(SoundManager.Instance.correctSfx2);
            SoundManager.Instance.PlayCorrectSFX();
            GameManager.Instance.LevelUp(typeOfGame);
            GameManager.Instance.ActivateSticker(typeOfGame);
            break;

        case DataType.GameEnd.CompletedLevel:
            SoundManager.Instance.PlayCorrectSFX();
            GameManager.Instance.LevelUp(typeOfGame);
            break;

        case DataType.GameEnd.FailedLevel:
            break;
        }

        return(CreateEndScreen(typeOfGame, typeOfEnd));
    }