Example #1
0
        public async Task <Pet> GetPet(Pet.PetStatic petStatic)
        {
            var version = GlobalSettings.FileVersions.Pet;

            if (string.IsNullOrWhiteSpace(version))
            {
                version = GlobalSettings.DefaultVersion;
            }

            var data = await WebClient.GetString(new Uri(GHStatic + version + PetsPath));

            if (data == null)
            {
                return(null);
            }

            var      dataCSV = CsvReader.ReadFromText(data);
            ICsvLine petRow  = dataCSV.SingleOrDefault(r => r[0] == "Pet" + petStatic.Id);

            if (petRow == null)
            {
                return(null);
            }

            var image = await GetImage(petStatic.ImageUrl);

            return(BuildPet(petRow, petStatic, image, version));
        }
Example #2
0
        private Pet BuildPet(ICsvLine serverData, Pet.PetStatic staticData, Bitmap image, string version)
        {
            var incrementRange = new Dictionary <int, double> {
            };

            double.TryParse(serverData[1], out double damageBase);
            double.TryParse(serverData[2], out double inc1to40);
            double.TryParse(serverData[3], out double inc41to80);
            double.TryParse(serverData[4], out double inc80on);
            Enum.TryParse(serverData[5], out BonusType bonusType);
            double.TryParse(serverData[6], out double bonusBase);
            double.TryParse(serverData[7], out double bonusIncrement);

            incrementRange.Add(1, inc1to40);
            incrementRange.Add(41, inc41to80);
            incrementRange.Add(81, inc80on);

            return(staticData.Build(damageBase, incrementRange, bonusType, bonusBase, bonusIncrement, image ?? new Bitmap(1, 1), version));
        }