Experience.LevelUp C# (CSharp) Method

LevelUp() public method

public LevelUp ( ) : void
return void
    public void LevelUp()
    {
        bool upgrade_flag = false;
        while(currentExperince >= experinceUntilNextLevel)
        {
            upgrade_flag = true;
            //experinceUntilNextLevel = currentExperince * 2;
            //Debug.Log("EXP -- CUR: " + currentExperince.ToString() + " Need: " + experinceUntilNextLevel.ToString());
            currentExperince -= experinceUntilNextLevel;
            ++currentLevel;
            experinceUntilNextLevel = (int)(Math.Pow(10, (int)(currentLevel / 10) + 1) * Math.Pow(1.2 + 0.001 * (currentLevel % 10), currentLevel % 10));
            //ExperincePoints = currentLevel * ExperincePointsPerLevel;
            if(class_info && player)
            {
                player.AddStrength(class_info.Class_info[player.GetClassID()].ClassAddStats.atk);
                player.AddDefense(class_info.Class_info[player.GetClassID()].ClassAddStats.def);
                player.AddStamina(class_info.Class_info[player.GetClassID()].ClassAddStats.sta);
                player.AddIntelligence(class_info.Class_info[player.GetClassID()].ClassAddStats.spi);
                player.AddAgility(class_info.Class_info[player.GetClassID()].ClassAddStats.agi);
                player.GetComponent<PassiveSkillManager>().addPoints(1);
            }
        }
        if(upgrade_flag && player)
        {
            player.Fully_Update();
        }
    }

Usage Example

    public void RandomStatsForLevel(int level)
    {
        Experience tempExperience = new Experience(this);

        for (int i = 1; i < level; i++)
        {
            tempExperience.LevelUp();
        }

        level_private     = level;
        currentxp_private = Experience.LevelExp(level - 1);
    }