public void HandleEvent(EggIncubatorStatusEvent evt, ISession session) { this.gui.updateIncubator(evt.IncubatorId, evt.KmWalked.ToString("F3")); Logger.Write(evt.WasAddedNow ? session.Translation.GetTranslation(TranslationString.IncubatorPuttingEgg, evt.KmRemaining) : session.Translation.GetTranslation(TranslationString.IncubatorStatusUpdate, evt.KmRemaining), LogLevel.Egg); }
public void HandleEvent(EggIncubatorStatusEvent eggIncubatorStatusEvent, ISession session) { Write(eggIncubatorStatusEvent.WasAddedNow ? session.Translation.GetTranslation(TranslationString.IncubatorPuttingEgg, eggIncubatorStatusEvent.KmRemaining) : session.Translation.GetTranslation(TranslationString.IncubatorStatusUpdate, eggIncubatorStatusEvent.KmRemaining), LogLevel.Egg); }
public void OnBotEvent(EggIncubatorStatusEvent e) { datacontext.EggsList.OnEggIncubatorStatus(e); //datacontext.PlayerInfo.UpdateEggs(e.KmRemaining); //Still in the works(TheWizard1328) datacontext.PlayerInfo.RaisePropertyChanged("KmRemaining"); datacontext.PlayerInfo.RaisePropertyChanged("KmToWalk"); datacontext.PlayerInfo.RaisePropertyChanged("EggPerc"); }
private static void HandleEvent(EggIncubatorStatusEvent eggIncubatorStatusEvent, ISession session) { Logger.Write(eggIncubatorStatusEvent.WasAddedNow ? session.Translation.GetTranslation(TranslationString.IncubatorPuttingEgg, eggIncubatorStatusEvent.KmToWalk.ToString("0.00").PadLeft(5)) : session.Translation.GetTranslation(TranslationString.IncubatorStatusUpdate, eggIncubatorStatusEvent.KmRemaining.ToString("0.00").PadLeft(5), eggIncubatorStatusEvent.KmToWalk.ToString("0.00").PadLeft(5)), LogLevel.Egg); }
internal void OnEggIncubatorStatus(EggIncubatorStatusEvent e) { var egg = this.Eggs.FirstOrDefault(t => t.Id == e.PokemonId); var incu = this.Incubators.FirstOrDefault(t => t.Id == e.IncubatorId); egg.Hatchable = false; incu.InUse = true; egg.KM = e.KmWalked; egg.RaisePropertyChanged("KM"); egg.RaisePropertyChanged("Hatchable"); incu.RaisePropertyChanged("InUse"); }
internal void OnEggIncubatorStatus(EggIncubatorStatusEvent e) { var egg = Eggs.FirstOrDefault(t => t.Id == e.PokemonId); var incu = Incubators.FirstOrDefault(t => t.Id == e.IncubatorId); if (egg == null) { return; } egg.Hatchable = false; incu.InUse = true; egg.KM = e.KmToWalk - e.KmWalked; //Still in the works(TheWizard1328) egg.RaisePropertyChanged("KM"); egg.RaisePropertyChanged("Hatchable"); incu.RaisePropertyChanged("InUse"); }
public void HandleEvent(EggIncubatorStatusEvent evt, ISession session) { }
public void OnBotEvent(EggIncubatorStatusEvent e) { datacontext.EggsList.OnEggIncubatorStatus(e); }
public static async Task Execute(ISession session, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); TinyIoC.TinyIoCContainer.Current.Resolve <MultiAccountManager>().ThrowIfSwitchAccountRequested(); try { var playerStats = (await session.Inventory.GetPlayerStats().ConfigureAwait(false)).FirstOrDefault(); if (playerStats == null) { return; } var kmWalked = playerStats.KmWalked; var incubators = (await session.Inventory.GetEggIncubators().ConfigureAwait(false)) .Where(x => x.UsesRemaining > 0 || x.ItemId == ItemId.ItemIncubatorBasicUnlimited) .OrderByDescending(x => x.ItemId == ItemId.ItemIncubatorBasicUnlimited) .ToList(); var unusedEggs = (await session.Inventory.GetEggs().ConfigureAwait(false)) .Where(x => string.IsNullOrEmpty(x.EggIncubatorId)) .OrderBy(x => x.EggKmWalkedTarget - x.EggKmWalkedStart) .ToList(); var rememberedIncubatorsFilePath = Path.Combine(session.LogicSettings.ProfilePath, "temp", "incubators.json"); var rememberedIncubators = GetRememberedIncubators(rememberedIncubatorsFilePath); var pokemons = (await session.Inventory.GetPokemons().ConfigureAwait(false)).ToList(); var eggIncubatorStatusEvent = new EggIncubatorStatusEvent(); // Check if eggs in remembered incubator usages have since hatched // (instead of calling session.Client.Inventory.GetHatchedEgg(), which doesn't seem to work properly) foreach (var incubator in rememberedIncubators) { var hatched = pokemons.FirstOrDefault(x => !x.IsEgg && x.Id == incubator.PokemonId); if (hatched == null) { continue; } //Still Needs some work - TheWizard1328 var stats = session.RuntimeStatistics; // Total Km walked var KMs = eggIncubatorStatusEvent.KmToWalk; //playerStats.KmWalked - hatched.EggKmWalkedStart; // Total Km Walked(hatched.EggKmWalkedStart=0) var stardust1 = session.Inventory.GetStarDust(); // Total trainer Stardust var stardust2 = stats.TotalStardust; // Total trainer Stardust var ExpAwarded1 = playerStats.Experience; // Total Player Exp - TheWizard1328 var ExpAwarded2 = stats.TotalExperience; // Session Exp - TheWizard1328 var TotCandy = session.Inventory.GetCandyCount(hatched.PokemonId); //Temp logger line personal testing info - TheWizard1328 #if DEBUG Logger.Write($"Hatch: eISE.KmWalked: {eggIncubatorStatusEvent.KmWalked:0.00} | eISE.KmToWalk: {eggIncubatorStatusEvent.KmToWalk:0.00} | " + $"XP1: {ExpAwarded1} | XP2: {ExpAwarded2} | SD1: {stardust1} | SD2: {stardust2}", LogLevel.Egg, ConsoleColor.DarkYellow); #endif if (session.LogicSettings.NotificationConfig.EnablePushBulletNotification) { await PushNotificationClient.SendNotification(session, $"Egg has hatched.", $"Pokemon: {hatched.PokemonId}\n" + $"Lvl: {PokemonInfo.GetLevel(hatched)}\n" + $"CP: {hatched.Cp}\n" + $"IV: {Math.Round(PokemonInfo.CalculatePokemonPerfection(hatched), 2)}\n", true).ConfigureAwait(false); } session.EventDispatcher.Send(new EggHatchedEvent { Dist = KMs, //Still working on this - TheWizard1328 Id = hatched.Id, PokemonId = hatched.PokemonId, Level = PokemonInfo.GetLevel(hatched), Cp = hatched.Cp, MaxCp = PokemonInfo.CalculateMaxCp(hatched.PokemonId), Perfection = Math.Round(PokemonInfo.CalculatePokemonPerfection(hatched), 2), HXP = ExpAwarded1, HSD = stardust2, // This still needs work too to display the total SD after hatching - TheWizard1328 HCandy = await TotCandy, }); } var newRememberedIncubators = new List <IncubatorUsage>(); foreach (var incubator in incubators) { cancellationToken.ThrowIfCancellationRequested(); TinyIoC.TinyIoCContainer.Current.Resolve <MultiAccountManager>().ThrowIfSwitchAccountRequested(); if (incubator.PokemonId == 0) { // Unlimited incubators prefer short eggs, limited incubators prefer long eggs // Special case: If only one incubator is available at all, it will prefer long eggs var egg = (incubator.ItemId == ItemId.ItemIncubatorBasicUnlimited && incubators.Count > 1) ? unusedEggs.FirstOrDefault() : unusedEggs.LastOrDefault(); if (egg == null) { continue; } // Skip (save) limited incubators depending on user choice in config if (!session.LogicSettings.UseLimitedEggIncubators && incubator.ItemId != ItemId.ItemIncubatorBasicUnlimited) { continue; } var response = await session.Client.Inventory.UseItemEggIncubator(incubator.Id, egg.Id).ConfigureAwait(false); unusedEggs.Remove(egg); newRememberedIncubators.Add(new IncubatorUsage { IncubatorId = incubator.Id, PokemonId = egg.Id }); session.EventDispatcher.Send(new EggIncubatorStatusEvent { IncubatorId = incubator.Id, WasAddedNow = true, PokemonId = egg.Id, KmToWalk = egg.EggKmWalkedTarget, KmRemaining = response.EggIncubator.TargetKmWalked - kmWalked }); } else { newRememberedIncubators.Add(new IncubatorUsage { IncubatorId = incubator.Id, PokemonId = incubator.PokemonId }); session.EventDispatcher.Send(new EggIncubatorStatusEvent { IncubatorId = incubator.Id, PokemonId = incubator.PokemonId, KmToWalk = incubator.TargetKmWalked - incubator.StartKmWalked, KmRemaining = incubator.TargetKmWalked - kmWalked }); } } if (!newRememberedIncubators.SequenceEqual(rememberedIncubators)) { SaveRememberedIncubators(newRememberedIncubators, rememberedIncubatorsFilePath); } } catch (Exception) { } }
public void HandleEvent(EggIncubatorStatusEvent evt, ISession session) { Logger.Write(evt.WasAddedNow ? session.Translation.GetTranslation(TranslationString.IncubatorPuttingEgg, evt.KmRemaining) : session.Translation.GetTranslation(TranslationString.IncubatorStatusUpdate, evt.KmRemaining)); }