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]); }
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; } } }