private void OnPokemonEncounter(object sender, PokemonEncounteredEventArgs e) { var manager = (IManager)sender; lock (PokemonDataInformation) { var iv = manager.CalculateIVPerfection(e.WildPokemon.PokemonData).Data; PokemonDataInformation.Add(new PokemonLocationInformation(e, iv)); } }
public PokemonLocationInformation(PokemonEncounteredEventArgs e, double iv) { EncounterId = Base64Encode(e.WildPokemon.EncounterId.ToString()); SpawnPointId = e.WildPokemon.SpawnPointId; Iv = iv; Cp = e.WildPokemon.PokemonData.Cp; Latitude = e.WildPokemon.Latitude; Longitude = e.WildPokemon.Longitude; PokemonName = (int)e.WildPokemon.PokemonData.PokemonId; Move1 = (int)e.WildPokemon.PokemonData.Move1; Move2 = (int)e.WildPokemon.PokemonData.Move2; LastModified = UnixTimeStampToDateTime(e.WildPokemon.LastModifiedTimestampMs / 1000).ToString("yyyy-M-d HH:mm:ss", CultureInfo.InvariantCulture); DisappearTime = e.WildPokemon.TimeTillHiddenMs > 0 ? DateTime.UtcNow.AddMilliseconds(e.WildPokemon.TimeTillHiddenMs).ToString("yyyy-M-d HH:mm:ss", CultureInfo.InvariantCulture) : DateTime.UtcNow.AddMinutes(30).ToString("yyyy-M-d HH:mm:ss", CultureInfo.InvariantCulture); Attack = e.WildPokemon.PokemonData.IndividualAttack; Defense = e.WildPokemon.PokemonData.IndividualDefense; Stamina = e.WildPokemon.PokemonData.IndividualStamina; }