I based mine on pokemans, since i was making a pokemans game.
public int ExpRequiredForNextLevel()
{
int n = this.level + 1;
switch (this.experienceType)
{
case ExperienceTypes.Erratic:
if (n <= 50) return Math.Pow(n, 3) * (100 - n) / 50.0f;
else if (n <= 68) return Math.Pow(n, 3) * (100 - n) / 100.0f;
else if (n <= 98) return Math.Pow(n, 3) * ((1911 - 10 * n) / 3.0f) / 500.0f;
else return Math.Pow(n, 3) * (160 - n) / 100.0f;
case ExperienceTypes.Fast:
return 4 * Math.Pow(n, 3) / 5.0f;
case ExperienceTypes.Fluctuating:
if (n <= 15) return Math.Pow(n, 3) * ((24 + ((n + 1) / 3.0f)) / 50.0f);
else if (n <= 35) return Math.Pow(n, 3) * ((14 + n) / 50.0f);
else return Math.Pow(n, 3) * ((32 + (n / 2.0f)) / 50.0f);
case ExperienceTypes.MediumFast:
return Math.Pow(n, 3);
case ExperienceTypes.MediumSlow:
return (int)((6 * Math.Pow(n, 3) / 5.0f) - 15 * Math.Pow(n, 2) + 100 * n - 140);
case ExperienceTypes.Slow:
return 5 * Math.Pow(n, 3) / 4.0f;
}
return 0;
}
public bool RequiresLevelingUp()
{
return this.experience >= ExpRequiredForNextLevel();
}
public void LevelUp()
{
while (this.level < 100 && RequiresLevelingUp())
this.level++;
}