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 void SetLastGamePlayed(DataType.Minigame game)
    {
        lastGamePlayed = game;

        // Save changes to save data
        SaveGame();
    }
 public void AddReviewGameToList(DataType.Minigame minigame)
 {
     print("Adding review game for " + minigame);
     if (!reviewGamesList.Contains(minigame) && GameManager.Instance.GetMinigameData(minigame).reviewPrefab)
     {
         reviewGamesList.Add(minigame);
     }
 }
    /// <summary>
    /// Unlocks a sticker for the corresponding game.
    /// </summary>
    /// <param name="game">Type of game to unlock sticker for.</param>

    public void ActivateSticker(DataType.Minigame game)
    {
        // Copy current struct to a new one
        DataType.StickerType gameSticker = GetAssignedSticker(game);
        if (gameSticker != DataType.StickerType.None)
        {
            ActivateSticker(gameSticker);
        }
    }
    // For creating a review without any conditions
    public void CreateReviewImmediately(DataType.Minigame minigame)
    {
        GameObject reviewGame = GameManager.Instance.GetMinigameData(minigame).reviewPrefab;

        if (reviewGame)
        {
            SpawnReview(reviewGame);
        }
    }
    /// <summary>
    /// Retrieves the unlocked status of sticker assigned to the game
    /// </summary>
    /// <param name="game">Type of game to check status of sticker.</param>
    /// <returns>Returns whether sticker is unlocked or not.</returns>

    public bool GetIsStickerUnlocked(DataType.Minigame game)
    {
        if (stickerStats.ContainsKey(GetAssignedSticker(game)))
        {
            return(stickerStats[GetAssignedSticker(game)].isStickerUnlocked);
        }
        else
        {
            return(false);
        }
    }
 void InitializeFromLoad(GameSave save)
 {
     print("Initializing entries from save file");
     gameStats           = save.gameStats;
     stickerStats        = save.stickerStats;
     visitedAreas        = save.visitedAreas;
     lastGamePlayed      = save.lastGamePlayed;
     isMonsterSelected   = save.isMonsterSelected;
     playerMonsterType   = save.playerMonsterType;
     numOfGamesCompleted = save.numOfGamesCompleted;
     isIntroShown        = save.isIntroShown;
 }
    /// <summary>
    /// Retrieves the type of sticker assigned to the game
    /// </summary>
    /// <param name="game">Type of game to unlock sticker for.</param>
    /// <returns>Returns a StickerType from DataType</returns>

    public DataType.StickerType GetAssignedSticker(DataType.Minigame game)
    {
        GameObject stickerPrefab = minigameDictionary[game].stickerPrefab;

        if (stickerPrefab)
        {
            return(stickerPrefab.GetComponent <StickerBehaviour> ().typeOfSticker);
        }
        else
        {
            return(DataType.StickerType.None);
        }
    }
    public void CompleteTutorial(DataType.Minigame gameName)
    {
        // Copy current struct to a new one
        MinigameStats newStats = gameStats[gameName];

        // Modify desired variable
        newStats.isTutorialPending = false;

        // Save changes to new struct
        gameStats[gameName] = newStats;

        // Save changes to save data
        SaveGame();
    }
    // Called at the end of a minigame
    public void LevelUp(DataType.Minigame gameName)
    {
        MinigameStats newStats = gameStats[gameName]; // Copy current struct to a new one

        numOfGamesCompleted++;

        if (newStats.stars < 3)
        {
            newStats.stars += 1;
        }
        if (newStats.level < 3)
        {
            newStats.level += 1;
        }

        if (newStats.stars == 1 || newStats.stars == 3)
        {
            if (ReviewManager.Instance)
            {
                ReviewManager.Instance.AddReviewGameToList(gameName);
            }

            // Set needReview to true when lvl 3 is completed every other time, temporary measure to reduce annoying reviews
            if (newStats.stars >= 3)
            {
                if (activateReview)
                {
                    if (ReviewManager.Instance)
                    {
                        ReviewManager.Instance.NeedReview = true;
                    }
                }
                activateReview = !activateReview;
            }
            else
            {
                if (ReviewManager.Instance)
                {
                    ReviewManager.Instance.NeedReview = true;
                }
            }
        }
        gameStats[gameName] = newStats; // Save changes to new struct

        // Save changes to save data
        SaveGame();
    }
    public void StartReview(DataType.Minigame minigame)
    {
        // Check if there is at least 1 review game in the pool, otherwise terminate review
        print("*CHECKING REVIEW CONDITIONS*");

        if (reviewGamesList.Count > 0)
        {
            DataType.Minigame selectedReview = reviewGamesList.GetRandomItem();

            // If the same type of game matches review, don't review
            if (minigame != selectedReview)
            {
                SpawnReview(GameManager.Instance.GetMinigameData(selectedReview).reviewPrefab);
                return;
            }
        }

        TerminateReview();
    }
Exemple #12
0
    private void Start()
    {
        // Initialize stars array
        for (int i = 0; i < transform.childCount; i++)
        {
            stars[i] = transform.GetChild(i).gameObject;
            TurnOffStar(stars[i]);
        }

        if (GetComponentInParent <MinigameButton> ())
        {
            DataType.Minigame minigame = GetComponentInParent <MinigameButton> ().typeOfGame;
            // Initialize numStars with amount of stars from Game Manager
            numStars = GameManager.Instance.GetNumStars(minigame);
            for (int i = 0; i < numStars; ++i)
            {
                TurnOnStar(stars[i]);
            }
        }

        else if (GetComponentInParent <EndScreen> ())
        {
            DataType.Minigame minigame = transform.parent.GetComponentInParent <EndScreen> ().typeOfGame;
            // Initialize numStars with amount of stars from Game Manager
            numStars = GameManager.Instance.GetNumStars(minigame);
            for (int i = 0; i < numStars; ++i)
            {
                TurnOnStar(stars[i]);
            }
        }

        else
        {
            Debug.LogError("StarPanel was not able to find a MinigameButton or End Screen script in the parent.");
        }

        // Show number of stars
    }
 public void RemoveReviewGameFromList(DataType.Minigame minigame)
 {
     reviewGamesList.Remove(minigame);
 }
 /// <summary>
 /// Retrieves the current level of a game
 /// </summary>
 /// <param name="gameName">Type of game to retrieve current level for.</param>
 /// <returns>Returns the current level of game, first level has a value of 1.</returns>
 public int GetLevel(DataType.Minigame gameName)
 {
     return(gameStats[gameName].level);
 }
 public bool GetPendingTutorial(DataType.Minigame gameName)
 {
     return(gameStats[gameName].isTutorialPending);
 }
 public int GetNumStars(DataType.Minigame gameName)
 {
     return(gameStats[gameName].stars);
 }
 public MinigameData GetMinigameData(DataType.Minigame gameName)
 {
     return(minigameDictionary[gameName]);
 }