public static void BuildExplorerMoveData()
        {
            foreach (string file in Directory.GetFiles(MoveDataFolder))
            {
                File.Delete(file);
            }

            foreach (string file in Directory.GetFiles(Path.Combine(Globals.AppPath, "RawMoveData"), "*.json"))
            {
                try
                {
                    RawMoveData rawMove = JsonConvert.DeserializeObject <RawMoveData>(File.ReadAllText(file));

                    if (rawMove == null)
                    {
                        Console.WriteLine($"{file} deserialized to null!");
                        continue;
                    }

                    ExplorersMove moveData = ExplorersMove.FromRawData(rawMove);

                    File.WriteAllText(Path.Combine(MoveDataFolder, $"{moveData.Id}.json"), JsonConvert.SerializeObject(moveData, Formatting.Indented));
                }
                catch (Exception e)
                {
                    Console.WriteLine($"Failed on file {file}.");
                    Console.WriteLine(e);
                }
            }
        }
Example #2
0
        public static ExplorersMove FromRawData(RawMoveData rawMoveData)
        {
            ExplorersMove move = new ExplorersMove
            {
                Id          = new string(rawMoveData.Move.Strings.English.Name.Replace(" ", "-").ToLower().Where(e => !Path.GetInvalidFileNameChars().Contains(e)).ToArray()),
                Name        = rawMoveData.Move.Strings.English.Name,
                Description = rawMoveData.Move.Strings.English.Category
            };

            switch (rawMoveData.Move.Data.Length)
            {
            case 2:
                if (Equals(rawMoveData.Move.Data[0], rawMoveData.Move.Data[1]))
                {
                    move.MoveId    = Convert.ToInt32(rawMoveData.Move.Data[0].MoveID);
                    move.Category  = (CatergoryEnum.MoveCategory)Convert.ToInt32(rawMoveData.Move.Data[0].Category);
                    move.BasePower = Convert.ToInt32(rawMoveData.Move.Data[0].BasePower);
                    move.Type      = (TypeEnum.PokemonType)Convert.ToInt32(rawMoveData.Move.Data[0].Type);
                    move.BasePP    = Convert.ToInt32(rawMoveData.Move.Data[0].BasePP);
                    move.Accuracy  = Convert.ToInt32(rawMoveData.Move.Data[0].Accuracy);
                }
                else
                {
                    Console.WriteLine($"{rawMoveData.Move.Strings.English.Name} has differing move datas! Using main move data, but it is important to research this more.");
                    move.MoveId    = Convert.ToInt32(rawMoveData.Move.Data[0].MoveID);
                    move.Category  = (CatergoryEnum.MoveCategory)Convert.ToInt32(rawMoveData.Move.Data[0].Category);
                    move.BasePower = Convert.ToInt32(rawMoveData.Move.Data[0].BasePower);
                    move.Type      = (TypeEnum.PokemonType)Convert.ToInt32(rawMoveData.Move.Data[0].Type);
                    move.BasePP    = Convert.ToInt32(rawMoveData.Move.Data[0].BasePP);
                    move.Accuracy  = Convert.ToInt32(rawMoveData.Move.Data[0].Accuracy);
                }
                break;

            case 1:
                move.MoveId    = Convert.ToInt32(rawMoveData.Move.Data[0].MoveID);
                move.Category  = (CatergoryEnum.MoveCategory)Convert.ToInt32(rawMoveData.Move.Data[0].Category);
                move.BasePower = Convert.ToInt32(rawMoveData.Move.Data[0].BasePower);
                move.Type      = (TypeEnum.PokemonType)Convert.ToInt32(rawMoveData.Move.Data[0].Type);
                move.BasePP    = Convert.ToInt32(rawMoveData.Move.Data[0].BasePP);
                move.Accuracy  = Convert.ToInt32(rawMoveData.Move.Data[0].Accuracy);
                break;

            default:
                throw new NullReferenceException($"{rawMoveData.Move.Strings.English.Name} has invalid move data!");
            }

            return(move);
        }