From be164d5afedda0be0635c8a82f9d925ef17176ee Mon Sep 17 00:00:00 2001 From: KP9lKk Date: Wed, 18 Dec 2024 12:33:25 +0300 Subject: [PATCH] add task for return loot --- LootBoxSimulator/Program.cs | 52 ++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/LootBoxSimulator/Program.cs b/LootBoxSimulator/Program.cs index 3a1b74c..a72dff7 100644 --- a/LootBoxSimulator/Program.cs +++ b/LootBoxSimulator/Program.cs @@ -1,40 +1,38 @@ - -decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M]; -//(start)-(end) -//(0,5) - (0,5+ 0,25) -//(0,5 + 0,25) - (0,5 + 0,25 + 0,125) -//(0,5 + 0,25 + 0,125) - (0,5 + 0,25 + 0,125 + 0,1) -//0.5 0 -//0.25 1 +using LootBoxSimulator.Models.DAO; + +RemoteDatabaseContext db = new RemoteDatabaseContext(); +decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M]; +Dictionary rareDictionary = new Dictionary(); +var rates = db.Rates.OrderByDescending(it => it.Rate).ToList(); -//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(); decimal number = Convert.ToDecimal(Math.Round(random.NextDouble(),2)); Console.WriteLine($"Random number: {number}"); decimal startRange = 0; -decimal endRange = test[0]; -if(number >= startRange && number <= endRange) Console.WriteLine(true); -for (int i = 1; i < test.Length; i++) +decimal endRange = rates[0].Rate; +rareDictionary.Add(rates[0].Id, (startRange, endRange)); +for (int i = 1; i < rates.Count; i++) { startRange = endRange; - endRange = startRange + test[i]; + endRange = startRange + rates[i].Rate; + rareDictionary.Add(rates[i].Id, (startRange, endRange)); if (number >= startRange && number <= endRange) { - Console.WriteLine($"{startRange} - {endRange} {true}"); - break; - } + Console.WriteLine(rates[i].Id); + }; } +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 до кол-во вещей после фильтра и выдать случайный +//предмет по выпавшему индексу \ No newline at end of file