geekbot/Geekbot.net/Lib/Levels/LevelCalc.cs

33 lines
798 B
C#
Raw Normal View History

2017-04-21 22:51:30 +02:00
using System;
using System.Collections.Generic;
2017-04-21 22:51:30 +02:00
namespace Geekbot.net.Lib.Levels
2017-04-21 22:51:30 +02:00
{
2018-01-19 01:17:05 +01:00
public class LevelCalc : ILevelCalc
2017-04-21 22:51:30 +02:00
{
private int[] _levels;
public LevelCalc()
2017-04-21 22:51:30 +02:00
{
var levels = new List<int>();
2017-04-21 22:51:30 +02:00
double total = 0;
for (var i = 1; i < 120; i++)
{
2017-04-21 22:51:30 +02:00
total += Math.Floor(i + 300 * Math.Pow(2, i / 7.0));
levels.Add((int) Math.Floor(total / 16));
}
_levels = levels.ToArray();
2017-04-21 22:51:30 +02:00
}
public int GetLevel(int? messages)
2017-04-21 22:51:30 +02:00
{
var returnVal = 1;
foreach (var level in _levels)
{
if (level > messages) break;
returnVal++;
}
return returnVal;
2017-04-21 22:51:30 +02:00
}
}
2017-09-15 22:56:03 +02:00
}