示例#1
0
    public void ChangeLevelResult(int levelToChange, LevelResult resultToSet)
    {
        if (levelToChange < 1 || levelToChange > MAX_LEVELS)
        {
            return;
        }                                                                 //Improper inputs, no need for this method
        if (GetLevelResult(levelToChange) == resultToSet)
        {
            return;
        }                                                             //Nothing is changing, no need for this method

        //********** Level Results ************
        LevelResult currentLevelResult = GetLevelResult(levelToChange);

        levelResults[levelToChange - 1] = resultToSet;
        ChangeLevelResultImageIfNeeded(levelToChange, currentLevelResult, resultToSet);

        //********** Stars Earned *************
        StarImages currentStarEarned = new StarImages(starEarned[3 * levelToChange - 3],
                                                      starEarned[3 * levelToChange - 2],
                                                      starEarned[3 * levelToChange - 1]);

        SetNewStarsEarnedArray(levelToChange, resultToSet);
        ChangeStarImagesIfNeeded(levelToChange, currentStarEarned, resultToSet);
    }
    // Start is called before the first frame update
    void Start()
    {
        //Setting up singleton
        if (instance != null)
        {
            Destroy(instance);
        }
        instance = this;

        List <int> starsForLevels = AchievementController.instance.GetStarsForLevels();

        SetStars(starsForLevels[level - 1]);
    }
示例#3
0
    private void ChangeStarImagesIfNeeded(int levelToChange, StarImages currentStarEarned, LevelResult resultToSet)
    {
        //*** First star ***
        if (currentStarEarned.starImage1 != starEarned[3 * levelToChange - 3])
        {
            switch (resultToSet)
            {
            case LevelResult.Locked:
                ChangeStarImage(3 * levelToChange - 3, false);
                break;

            case LevelResult.Unlocked:
                ChangeStarImage(3 * levelToChange - 3, false);
                break;

            case LevelResult.Done1Star:
                ChangeStarImage(3 * levelToChange - 3, true);
                break;

            case LevelResult.Done2Star:
                ChangeStarImage(3 * levelToChange - 3, true);
                break;

            case LevelResult.Done3Star:
                ChangeStarImage(3 * levelToChange - 3, true);
                break;

            default:
                break;
            }
        }

        //*** Second star ***
        if (currentStarEarned.starImage2 != starEarned[3 * levelToChange - 2])
        {
            switch (resultToSet)
            {
            case LevelResult.Locked:
                ChangeStarImage(3 * levelToChange - 2, false);
                break;

            case LevelResult.Unlocked:
                ChangeStarImage(3 * levelToChange - 2, false);
                break;

            case LevelResult.Done1Star:
                ChangeStarImage(3 * levelToChange - 2, false);
                break;

            case LevelResult.Done2Star:
                ChangeStarImage(3 * levelToChange - 2, true);
                break;

            case LevelResult.Done3Star:
                ChangeStarImage(3 * levelToChange - 2, true);
                break;

            default:
                break;
            }
        }

        //*** Third star ***
        if (currentStarEarned.starImage3 != starEarned[3 * levelToChange - 1])
        {
            switch (resultToSet)
            {
            case LevelResult.Locked:
                ChangeStarImage(3 * levelToChange - 1, false);
                break;

            case LevelResult.Unlocked:
                ChangeStarImage(3 * levelToChange - 1, false);
                break;

            case LevelResult.Done1Star:
                ChangeStarImage(3 * levelToChange - 1, false);
                break;

            case LevelResult.Done2Star:
                ChangeStarImage(3 * levelToChange - 1, false);
                break;

            case LevelResult.Done3Star:
                ChangeStarImage(3 * levelToChange - 1, true);
                break;

            default:
                break;
            }
        }
    }