Example #1
0
 public void FillTraitDictionary(JObject traitJson, JObject metadataJson)
 {
     TraitsRarity = new Dictionary <string, string>();
     for (int i = 7; i < 19; i++)
     {
         var traitType     = (string)metadataJson["attributes"][i]["trait_type"];
         var traitName     = (string)metadataJson["attributes"][i]["value"];
         var traitRarity   = "";
         var traitTypeName = AvastarCommands.Capitalise(traitType.Replace('_', ' '));
         foreach (var trait in traitJson[traitTypeName])
         {
             if (trait.Type == JTokenType.Null)
             {
                 continue;
             }
             if ((string)trait["name"] == traitName)
             {
                 traitRarity = (string)trait["rarity"];
                 break;
             }
         }
         TraitsRarity.Add(traitType, traitRarity);
     }
 }
Example #2
0
        public static async Task MigrateAva(int id)
        {
            var oldAva = await AvastarObject.GetAva(id);

            var ava = new AvastarObject();

            ava.id           = oldAva.id;
            ava.Gender       = oldAva.Gender;
            ava.Score        = oldAva.Score;
            ava.traits       = oldAva.traits;
            ava.Owner        = "";// await Blockchain.ChainWatcher.GetOwnerOf(id);
            ava.TraitsRarity = new Dictionary <string, string>();
            var traitJson = JObject.Parse(DiscordKeyGetter.GetFileData("app/create-traits-nosvg.json"));

            foreach (var pair in ava.traits)
            {
                var traitType     = pair.Key;
                var traitName     = pair.Value;
                var traitRarity   = "";
                var traitTypeName = AvastarCommands.Capitalise(traitType.Replace('_', ' '));
                foreach (var trait in traitJson[traitTypeName])
                {
                    if (trait.Type == JTokenType.Null)
                    {
                        continue;
                    }
                    if ((string)trait["name"] == traitName)
                    {
                        traitRarity = (string)trait["rarity"];
                        break;
                    }
                }
                ava.TraitsRarity.Add(traitType, traitRarity);
            }
            ava.RarityDistribution = new Dictionary <string, int>();
            ava.RarityDistribution.Add("Common", 0);
            ava.RarityDistribution.Add("Uncommon", 0);
            ava.RarityDistribution.Add("Rare", 0);
            ava.RarityDistribution.Add("Epic", 0);
            ava.RarityDistribution.Add("Legendary", 0);
            foreach (var pair in ava.TraitsRarity)
            {
                switch (pair.Value)
                {
                case "Common":
                    ava.RarityDistribution["Common"]++;
                    break;

                case "Uncommon":
                    ava.RarityDistribution["Uncommon"]++;
                    break;

                case "Rare":
                    ava.RarityDistribution["Rare"]++;
                    break;

                case "Epic":
                    ava.RarityDistribution["Epic"]++;
                    break;

                case "Legendary":
                    ava.RarityDistribution["Legendary"]++;
                    break;
                }
            }
            var collec = DatabaseConnection.GetDb().GetCollection <AvastarObject>("AvastarCollection");
            await collec.ReplaceOneAsync(a => a.id == id, ava);
        }