35 lines
901 B
C#
35 lines
901 B
C#
using NadekoBot.Modules.Xp.Services;
|
|
using NadekoBot.Core.Services.Database.Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NadekoBot.Modules.Xp.Extensions
|
|
{
|
|
public static class Extensions
|
|
{
|
|
public static (int Level, int LevelXp, int LevelRequiredXp) GetLevelData(this UserXpStats stats)
|
|
{
|
|
var baseXp = XpService.XP_REQUIRED_LVL_1;
|
|
|
|
var required = baseXp;
|
|
var totalXp = 0;
|
|
var lvl = 1;
|
|
while (true)
|
|
{
|
|
required = (int)(baseXp + baseXp / 4.0 * (lvl - 1));
|
|
|
|
if (required + totalXp > stats.Xp)
|
|
break;
|
|
|
|
totalXp += required;
|
|
lvl++;
|
|
}
|
|
|
|
return (lvl - 1, stats.Xp - totalXp, required);
|
|
}
|
|
}
|
|
}
|