Ejemplo n.º 1
0
    /// <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);
        }
    }
Ejemplo n.º 2
0
    /// <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);
    }