add task for return loot

This commit is contained in:
KP9lKk 2024-12-18 12:33:25 +03:00
parent 5e078be179
commit be164d5afe

View File

@ -1,40 +1,38 @@
 using LootBoxSimulator.Models.DAO;
decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M];
//(start)-(end) RemoteDatabaseContext db = new RemoteDatabaseContext();
//(0,5) - (0,5+ 0,25) decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M];
//(0,5 + 0,25) - (0,5 + 0,25 + 0,125) Dictionary<int, (decimal, decimal)> rareDictionary = new Dictionary<int, (decimal, decimal)>();
//(0,5 + 0,25 + 0,125) - (0,5 + 0,25 + 0,125 + 0,1) var rates = db.Rates.OrderByDescending(it => it.Rate).ToList();
//0.5 0
//0.25 1
//0-1
//0.5 0.25 0.125 0.125
//0 - 0.5 //unrare
//0.5 - 0.75 //rare
//0.75 - 0.875 //epic
//0.875 - 1 //legend
test = test.OrderByDescending(it => it).ToArray();
foreach (var @decimal in test)
{
Console.WriteLine(@decimal);
}
Random random = new Random(); Random random = new Random();
decimal number = Convert.ToDecimal(Math.Round(random.NextDouble(),2)); decimal number = Convert.ToDecimal(Math.Round(random.NextDouble(),2));
Console.WriteLine($"Random number: {number}"); Console.WriteLine($"Random number: {number}");
decimal startRange = 0; decimal startRange = 0;
decimal endRange = test[0]; decimal endRange = rates[0].Rate;
if(number >= startRange && number <= endRange) Console.WriteLine(true); rareDictionary.Add(rates[0].Id, (startRange, endRange));
for (int i = 1; i < test.Length; i++) for (int i = 1; i < rates.Count; i++)
{ {
startRange = endRange; startRange = endRange;
endRange = startRange + test[i]; endRange = startRange + rates[i].Rate;
rareDictionary.Add(rates[i].Id, (startRange, endRange));
if (number >= startRange && number <= endRange) if (number >= startRange && number <= endRange)
{ {
Console.WriteLine($"{startRange} - {endRange} {true}"); Console.WriteLine(rates[i].Id);
break; };
}
} }
foreach (var keyValuePair in rareDictionary)
{
Console.WriteLine($"{keyValuePair.Key}: {keyValuePair.Value}");
}
var items = db.Items.Where(it => it.Rate.Rate == 3).ToList();
Random randomInt = new Random();
int randomIndex = randomInt.Next(0,items.Count);
Console.WriteLine(items[randomIndex].Name);
//вынести попадание в диапазон в отдельную функцию, которая возвращает айди редкость
//сделать ролл по предметам с условием выпавшей редкости и вернуть случайную вещь
//сгенерировать случайное число от 0 до кол-во вещей после фильтра и выдать случайный
//предмет по выпавшему индексу