Example #1
0
        public async Task GenerateLegacyMovesJson()
        {
            var json = await PokemonGoGameMasterFileManager.ReadFileAsync(PokemonGoGameMasterFileManager.GameMasterJsonPath);

            dynamic gameMaster = JsonConvert.DeserializeObject <dynamic>(json);
            var     regex      = new Regex(@"^COMBAT_V\d+_MOVE_");
            var     templates  = ((IEnumerable <dynamic>)gameMaster.itemTemplates).Where(t => regex.IsMatch((string)t.templateId));

            var moves = new Dictionary <string, bool>();

            foreach (dynamic template in templates)
            {
                string moveId = (string)template.combatMove.uniqueId;
                moves.Add(moveId.Replace("_FAST", String.Empty), moveId.EndsWith("_FAST"));
            }

            var pvpokeJson = await PvPokeGameMasterFileManager.ReadFileAsync(PvPokeGameMasterFileManager.ActualPvPokeGameMasterJsonPath);

            var pvpokeGameMaster     = JsonConvert.DeserializeObject <PvPokeGameMasterFileManager.GameMasterFile>(pvpokeJson);
            var legacyMoveCollection = new LegacyMoveCollection();

            foreach (var pokemon in pvpokeGameMaster.Pokemon)
            {
                var pokemonWithLegacyMoves = new LegacyMoveCollection.PokemonWithLegacyMoves {
                    SpeciesId = pokemon.SpeciesId.Replace("_normal", String.Empty)
                };

                if (pokemon.LegacyMoves != null)
                {
                    foreach (string legacyMove in pokemon.LegacyMoves)
                    {
                        if (legacyMove.StartsWith("HIDDEN_POWER_") || moves[legacyMove])
                        {
                            pokemonWithLegacyMoves.LegacyFastMoves.Add(legacyMove);
                        }
                        else
                        {
                            pokemonWithLegacyMoves.LegacyChargeMoves.Add(legacyMove);
                        }
                    }
                }

                legacyMoveCollection.Pokemon.Add(pokemonWithLegacyMoves);
            }

            string legacyMovesJson = JsonConvert.SerializeObject(legacyMoveCollection, GlobalJsonSerializerSettings.Shared);
            await FileManager.SaveFileAsync(legacyMovesJson, PokemonGoGameMasterFileManager.LegacyMovesJsonPath);

            _output.WriteLine(legacyMovesJson);
        }
Example #2
0
        public async Task RefreshAllFiles()
        {
            await PokemonGoGameMasterFileManager.FetchAndSaveFileAsync();

            await PvPokeGameMasterFileManager.FetchAndSaveFileAsync();

            await GenerateLegacyMovesJson();
            await GenerateDefaultIVsJson();
            await GeneratePvPokeGameMasterJson();

            foreach (string filePath in Directory.EnumerateFiles(PokemonGoGameMasterFileManager.DataPath).Where(f => f.EndsWith(".json")))
            {
                var json = await FileManager.ReadFileAsync(filePath);

                var jsonObject    = JsonConvert.DeserializeObject <dynamic>(json);
                var formattedJson = JsonConvert.SerializeObject(jsonObject, GlobalJsonSerializerSettings.Shared);
                await FileManager.SaveFileAsync(formattedJson, filePath);
            }
        }
        public static async Task Main(string[] args)
        {
            PokemonGoGameMasterFileManager.GameMasterFile gameMasterFile;

            if (!PokemonGoGameMasterFileManager.FileExists())
            {
                gameMasterFile = await PokemonGoGameMasterFileManager.FetchAndSaveFileAsync();
            }
            else
            {
                long latestGameMasterVersion = await PokemonGoGameMasterFileManager.FetchLatestVersionAsync();

                gameMasterFile = await PokemonGoGameMasterFileManager.LoadFileAsync(PokemonGoGameMasterFileManager.GameMasterJsonPath);

                if (gameMasterFile.TimeStampMs != latestGameMasterVersion)
                {
                    gameMasterFile = await PokemonGoGameMasterFileManager.FetchAndSaveFileAsync();
                }
            }

            Console.WriteLine(gameMasterFile.TimeStampMs);
        }
Example #4
0
        public async Task GeneratePvPokeGameMasterJson()
        {
            //await PokemonGoGameMasterFileManager.FetchAndSaveFileAsync();
            var json = await PokemonGoGameMasterFileManager.ReadFileAsync(PokemonGoGameMasterFileManager.GameMasterJsonPath);

            dynamic gameMaster = JsonConvert.DeserializeObject <dynamic>(json);

            var settings = await FileManager.LoadFileAsync <dynamic>(PokemonGoGameMasterFileManager.SettingsJsonPath);

            var cups = await FileManager.LoadFileAsync <dynamic>(PokemonGoGameMasterFileManager.CupsJsonPath);

            var gameMasterFile = new PvPokeGameMasterFileManager.GameMasterFile
            {
                Settings = settings,
                Cups     = cups,
                Pokemon  = await GameMasterFileAdapter.AdaptPokemonAsync(gameMaster),
                Moves    = GameMasterFileAdapter.AdaptMoves(gameMaster)
            };

            string gameMasterJson = JsonConvert.SerializeObject(gameMasterFile, GlobalJsonSerializerSettings.Shared);
            await FileManager.SaveFileAsync(gameMasterJson, PvPokeGameMasterFileManager.GeneratedPvPokeGameMasterJsonPath);

            _output.WriteLine(gameMasterJson);
        }