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); }
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); }
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); }