diff --git a/PoGo.PokeMobBot.CLI/ConsoleEventListener.cs b/PoGo.PokeMobBot.CLI/ConsoleEventListener.cs index c1cd3b9..a39246d 100644 --- a/PoGo.PokeMobBot.CLI/ConsoleEventListener.cs +++ b/PoGo.PokeMobBot.CLI/ConsoleEventListener.cs @@ -214,6 +214,18 @@ public void HandleEvent(SnipeScanEvent evt, ISession session) $"{evt.Bounds.Latitude},{evt.Bounds.Longitude}")); } + public void HandleEvent(PokemonEncounterEvent evt, ISession session) + { + Logger.Write( + $"{evt.WildPokemon.PokemonId.ToString().PadRight(16, ' ')} | " + + $"Lvl: {Logic.PoGoUtils.PokemonInfo.GetLevel(evt.WildPokemon),2:#0} | " + + $"CP: {evt.WildPokemon.Cp,4:###0}/{Logic.PoGoUtils.PokemonInfo.CalculateMaxCp(evt.WildPokemon),4:###0} | " + + $"IV: {Logic.PoGoUtils.PokemonInfo.CalculatePokemonPerfection(evt.WildPokemon),6:##0.00}% | " + + $"[{evt.WildPokemon.IndividualAttack,2:#0}/{evt.WildPokemon.IndividualDefense,2:#0}/{evt.WildPokemon.IndividualStamina,2:#0}] | " + + $"Location: {evt.MapPokemon.Latitude},{evt.MapPokemon.Longitude}", + LogLevel.Caught, ConsoleColor.Green); + } + public void HandleEvent(DisplayHighestsPokemonEvent evt, ISession session) { string strHeader; diff --git a/PoGo.PokeMobBot.Logic/Event/PokemonEncounterEvent.cs b/PoGo.PokeMobBot.Logic/Event/PokemonEncounterEvent.cs new file mode 100644 index 0000000..6160e9b --- /dev/null +++ b/PoGo.PokeMobBot.Logic/Event/PokemonEncounterEvent.cs @@ -0,0 +1,14 @@ +#region using directives + +using POGOProtos.Enums; + +#endregion + +namespace PoGo.PokeMobBot.Logic.Event +{ + public class PokemonEncounterEvent : IEvent + { + public POGOProtos.Data.PokemonData WildPokemon { get; set; } + public POGOProtos.Map.Pokemon.MapPokemon MapPokemon { get; set; } + } +} \ No newline at end of file diff --git a/PoGo.PokeMobBot.Logic/PoGo.PokeMobBot.Logic.csproj b/PoGo.PokeMobBot.Logic/PoGo.PokeMobBot.Logic.csproj index bb1cfe3..4e86c3a 100644 --- a/PoGo.PokeMobBot.Logic/PoGo.PokeMobBot.Logic.csproj +++ b/PoGo.PokeMobBot.Logic/PoGo.PokeMobBot.Logic.csproj @@ -61,6 +61,7 @@ + diff --git a/PoGo.PokeMobBot.Logic/Tasks/CatchPokemonTask.cs b/PoGo.PokeMobBot.Logic/Tasks/CatchPokemonTask.cs index 97d6c99..1b567b4 100644 --- a/PoGo.PokeMobBot.Logic/Tasks/CatchPokemonTask.cs +++ b/PoGo.PokeMobBot.Logic/Tasks/CatchPokemonTask.cs @@ -29,6 +29,26 @@ public static async Task Execute(ISession session, dynamic encounter, MapPokemon throw new ArgumentException("Parameter pokemon must be set, if encounter is of type EncounterResponse", "pokemon"); + if (encounter is EncounterResponse) + { + session.EventDispatcher.Send(new PokemonEncounterEvent + { + WildPokemon = encounter.WildPokemon?.PokemonData, + MapPokemon = pokemon + }); + + DataDumper.Dumper.Dump(session, + $"[{DateTime.Now.ToString("HH:mm:ss")}] | " + + $"{encounter.WildPokemon?.PokemonData?.PokemonId.ToString().PadRight(16, ' ')} | " + + $"Lvl: {PokemonInfo.GetLevel(encounter.WildPokemon?.PokemonData),2:#0} | " + + $"CP: {encounter.WildPokemon?.PokemonData?.Cp,4:###0}/{PokemonInfo.CalculateMaxCp(encounter.WildPokemon?.PokemonData),4:###0} | " + + $"IV: {PokemonInfo.CalculatePokemonPerfection(encounter.WildPokemon?.PokemonData),6:##0.00}% | " + + $"[{encounter.WildPokemon?.PokemonData?.IndividualAttack,2:#0}/{encounter.WildPokemon?.PokemonData?.IndividualDefense,2:#0}/{encounter.WildPokemon?.PokemonData?.IndividualStamina,2:#0}] | " + + $"Location: {pokemon.Latitude},{pokemon.Longitude} | " + + $"EncounterId: {pokemon.EncounterId}", + "encounters"); + } + CatchPokemonResponse caughtPokemonResponse; var attemptCounter = 1; do