Exemplo n.º 1
0
        public static uint GetWaifuQuickSellCost(WaifuRarity rarity)
        {
            switch (rarity)
            {
            case WaifuRarity.Common:
                return(50);

            case WaifuRarity.Uncommon:
                return(100);

            case WaifuRarity.Rare:
                return(200);

            case WaifuRarity.Epic:
                return(500);

            case WaifuRarity.UltimateWaifu:
                return(1500);

            case WaifuRarity.Halloween:
            case WaifuRarity.Christmas:
            case WaifuRarity.Summer:
                return(400);

            default:
                return(200);
            }
        }
Exemplo n.º 2
0
        public async Task <WaifuDbo> GetRandomSpecialWaifu(ulong userId, WaifuRarity specialRarity)
        {
            // Remove all waifus the user already has
            // Creating a dictionary to avoid looping for then to hundreds of thousand of times :)
            var userWaifus =
                (await _waifuRepo.GetAllWaifusFromUserWithRarity(userId, specialRarity)
                 .ConfigureAwait(false)).ToDictionary(x => x.Id, x => true);

            var remaining = (await this.GetAllWaifus().ConfigureAwait(false))
                            .Where(x => x.Rarity == specialRarity && !userWaifus.ContainsKey(x.Id))
                            .ToList();

            if (remaining.Count == 0)
            {
                return(null);
            }

            return(remaining[_rand.GetRandomNext(0, remaining.Count)]);
        }
Exemplo n.º 3
0
        private int GetRarityAmount(WaifuRarity rarity)
        {
            switch (rarity)
            {
            case WaifuRarity.Common:
                return(500);

            case WaifuRarity.Uncommon:
                return(300);

            case WaifuRarity.Rare:
                return(100);

            case WaifuRarity.Epic:
                return(50);

            case WaifuRarity.UltimateWaifu:
                return(20);
            }
            return(0);
        }
Exemplo n.º 4
0
        private int GetWaifuQuickSellCost(WaifuRarity rarity)
        {
            switch (rarity)
            {
            case WaifuRarity.Common:
                return(50);

            case WaifuRarity.Uncommon:
                return(100);

            case WaifuRarity.Rare:
                return(200);

            case WaifuRarity.Epic:
                return(500);

            case WaifuRarity.UltimateWaifu:
                return(1500);
            }
            return(0);
        }
Exemplo n.º 5
0
        public static string GetRarityString(WaifuRarity rarity)
        {
            switch (rarity)
            {
            case WaifuRarity.Common:
                return("Common");

            case WaifuRarity.Uncommon:
                return("Uncommon");

            case WaifuRarity.Rare:
                return("Rare");

            case WaifuRarity.Epic:
                return("Epic");

            case WaifuRarity.UltimateWaifu:
                return("Ultimate Waifu");
            }
            return("");
        }
Exemplo n.º 6
0
 public static string GetRarityString(WaifuRarity rarity)
 {
     switch (rarity)
     {
         case WaifuRarity.Common:
             return "Common";
         case WaifuRarity.Uncommon:
             return "Uncommon";
         case WaifuRarity.Rare:
             return "Rare";
         case WaifuRarity.Epic:
             return "Epic";
         case WaifuRarity.UltimateWaifu:
             return "Ultimate Waifu";
         case WaifuRarity.Halloween:
             return "Halloween";
         case WaifuRarity.Christmas:
             return "Christmas";
         case WaifuRarity.Summer:
             return "Summer";
     }
     return "";
 }
Exemplo n.º 7
0
 /// <summary>
 /// This will return a string that can be used to properly name the waifus.
 /// Certain rarities will have prefixes or maybe suffixes like Christmas Zero Two.
 /// In that example this function would return "Christmas %". This means that the
 /// waifu rarity has a prefix of Christmas and the actual waifu name should be put in
 /// place for the %.
 /// </summary>
 /// <param name="rarity"></param>
 /// <returns></returns>
 private static string GetRarityInterpolation(WaifuRarity rarity) =>
 rarity switch
 {
Exemplo n.º 8
0
 public static bool IsSpecialOrUltiWaifu(WaifuRarity rarity)
 => (rarity != WaifuRarity.Common && rarity != WaifuRarity.Uncommon &&
     rarity != WaifuRarity.Rare && rarity != WaifuRarity.Epic);
Exemplo n.º 9
0
 public async Task <List <Waifu> > GetAllWaifusFromUserWithRarity(ulong userId, WaifuRarity rarity)
 {
     return(await _soraTransactor.DoAsync(async context =>
     {
         return await context.Users.Where(u => u.Id == userId).SelectMany(x => x.UserWaifus)
         .Select(w => w.Waifu).Where(y => y.Rarity == rarity).ToListAsync();
     }).ConfigureAwait(false));
 }