/// <summary> /// This function is used to increase the players xp and update various UI elements. /// </summary> /// <param name="xp"></param> private void IncreaseXP(int xp) { int prevLevel = info.GetLevel(); info.AddXp(xp); _xpSlider.fillAmount = info.GetPercentageToNextLevel(); int currentLevel = info.GetLevel(); tempLevel.text = "" + currentLevel; if (powers.Count > 0 && prevLevel < currentLevel) { UpdatePowers(currentLevel); } }
/// <summary> /// This functon is used to update the achievement list. Upon completion, the text will turn green /// and the achievement will be placed in the completed list. /// </summary> /// <param name="completedIndex"></param> /// <param name="value"></param> /// <param name="achievement"></param> /// <param name="key"></param> /// <returns></returns> private int UpdateAchievements(int completedIndex, int value, List <Achieve> achievement, int key = 0) { int xpToAdd = 0; int index = 0; for (int i = 0; i < achievement.Count; i++) { //If a UI element hasnt been made for the achievement, then create onne if (achievement[i]._UIElement == null) { GameObject achieve = Instantiate(_achievementPrefab, _achievementScroller.transform.GetChild(0)); achievement[i]._UIElement = achieve; if (achievement[i].isHidden) { achieve.GetComponent <TextMeshProUGUI>().text = " HIDDEN"; } else { achieve.GetComponent <TextMeshProUGUI>().text = " " + achievement[i].wording; } } //If the value is create than the achievement value, then set this achievement as complete if (value >= achievement[i]._value) { _completed.Add(achievement[i]); if (index > completedIndex - 1) { print(achievement[i].wording); info.AddCoins(achievement[i]._coinReward); xpToAdd += achievement[i]._xpReward; } achievement[i]._UIElement.GetComponent <TextMeshProUGUI>().color = Color.green; achievement.RemoveAt(i); i--; index++; } } //If an achievement has been made and you need the rewards, gain the rewards and make sure that another achievement hasn't been achieved if (xpToAdd > 0) { info.AddXp(xpToAdd); switch (key) { case 0: break; case 1: UpdateAchievements(info.GetKillAchievementIndex(), info.GetTotalKills(), _killAchivements, 1); break; default: Debug.Log("KEY NOT FOUND"); break; } ; UpdateAchievements(info.GetLevelAchievementIndex(), info.GetLevel(), _levelAchievements, 0); } return(index); }