public IState Execute(Context ctx, StateMachine machine) { RenamePokemonTask.Execute(ctx, machine); if (ctx.LogicSettings.EvolveAllPokemonAboveIv || ctx.LogicSettings.EvolveAllPokemonWithEnoughCandy) { EvolvePokemonTask.Execute(ctx, machine); } if (ctx.LogicSettings.TransferDuplicatePokemon) { TransferDuplicatePokemonTask.Execute(ctx, machine); } RecycleItemsTask.Execute(ctx, machine); if (ctx.LogicSettings.UseGpxPathing) { FarmPokestopsGpxTask.Execute(ctx, machine); } else { FarmPokestopsTask.Execute(ctx, machine); } machine.RequestDelay(10000); return this; }
public IState Execute(Context ctx, StateMachine machine) { var coordsPath = Directory.GetCurrentDirectory() + "\\Configs\\Coords.ini"; if (File.Exists(coordsPath)) { var latLngFromFile = LoadPositionFromDisk(machine); if (latLngFromFile != null) { var distance = LocationUtils.CalculateDistanceInMeters(latLngFromFile.Item1, latLngFromFile.Item2, ctx.Settings.DefaultLatitude, ctx.Settings.DefaultLongitude); var lastModified = File.Exists(coordsPath) ? (DateTime?) File.GetLastWriteTime(coordsPath) : null; if (lastModified != null) { var hoursSinceModified = (DateTime.Now - lastModified).HasValue ? (double?) ((DateTime.Now - lastModified).Value.Minutes/60.0) : null; if (hoursSinceModified != null && hoursSinceModified != 0) { var kmph = distance/1000/(double) hoursSinceModified; if (kmph < 80) // If speed required to get to the default location is < 80km/hr { File.Delete(coordsPath); machine.Fire(new WarnEvent { Message = "Detected realistic Traveling , using UserSettings.settings" }); } else { machine.Fire(new WarnEvent { Message = "Not realistic Traveling at " + kmph + ", using last saved Coords.ini" }); } } } } } machine.Fire(new WarnEvent { Message = $"Make sure Lat & Lng are right. Exit Program if not! Lat: {ctx.Client.CurrentLatitude} Lng: {ctx.Client.CurrentLongitude}" }); machine.RequestDelay(3000); return new FarmState(); }
public IState Execute(Context ctx, StateMachine machine) { try { switch (ctx.Settings.AuthType) { case AuthType.Ptc: try { ctx.Client.Login.DoPtcLogin(ctx.Settings.PtcUsername, ctx.Settings.PtcPassword).Wait(); } catch (System.AggregateException ae) { throw ae.Flatten().InnerException; } break; case AuthType.Google: ctx.Client.Login.DoGoogleLogin().Wait(); break; default: machine.Fire(new ErrorEvent {Message = "wrong AuthType"}); return null; } } catch (PtcOfflineException) { machine.Fire(new ErrorEvent { Message = "PTC Servers are probably down OR your credentials are wrong. Try google" }); machine.Fire(new NoticeEvent {Message = "Trying again in 20 seconds..."}); machine.RequestDelay(20000); return this; } catch (AccountNotVerifiedException) { machine.Fire(new ErrorEvent {Message = "Account not verified. - Exiting"}); return null; } DownloadProfile(ctx, machine); return new PositionCheckState(); }