Example #1
0
        public static void AddToList(ISession session, EncounterResponse eresponse)
        {
            if (PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData) < minIvPercent ||
                session.LogicSettings.PokemonsNotToCatch.Contains(eresponse.WildPokemon.PokemonData.PokemonId) ||
                LocationQueue.FirstOrDefault(p => p.EncounterId == eresponse.WildPokemon.EncounterId) != null ||
                VisitedEncounterIds.Contains(eresponse.WildPokemon.EncounterId))
            {
                return;
            }

            using (var newdata = new EncounterInfo())
            {
                newdata.EncounterId             = eresponse.WildPokemon.EncounterId;
                newdata.LastModifiedTimestampMs = eresponse.WildPokemon.LastModifiedTimestampMs;
                newdata.SpawnPointId            = eresponse.WildPokemon.SpawnPointId;
                newdata.TimeTillHiddenMs        = eresponse.WildPokemon.TimeTillHiddenMs;
                newdata.PokemonId = eresponse.WildPokemon.PokemonData.PokemonId;
                newdata.Iv        = PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData);
                newdata.Latitude  = eresponse.WildPokemon.Latitude;
                newdata.Longitude = eresponse.WildPokemon.Longitude;
                newdata.Move1     = eresponse.WildPokemon.PokemonData.Move1;
                newdata.Move2     = eresponse.WildPokemon.PokemonData.Move2;

                if (LocationQueue.FirstOrDefault(p => p.EncounterId == newdata.EncounterId &&
                                                 p.SpawnPointId == newdata.SpawnPointId) == null)// check 2x
                {
                    LocationQueue.Add(newdata);
                }
            }
        }
Example #2
0
    void checkBattleRes()
    {
        if (!PlayerData.getInstance().isWaitingBattle || !PlayerData.getInstance().isFixedBattle)
        {
            return;
        }
        Debug.Log(PlayerData.getInstance().beforeEid);
        EncounterInfo  einfo   = GameStaticData.getInstance().getEncounterInfo(PlayerData.getInstance().beforeEid);
        EncounterStage es      = einfo.stages [PlayerData.getInstance().beforeStage];
        int            showIdx = -1;

        if (PlayerData.getInstance().battleWin)
        {
            showIdx = es.converts [0].nextStageIdx;
        }
        else
        {
            showIdx = es.converts [1].nextStageIdx;
        }
        if (showIdx != -1)
        {
            sbManager.initEncounter(einfo.eId, showIdx);
            sbManager.RequestFocus();
        }
        PlayerData.getInstance().isWaitingBattle = false;
    }
Example #3
0
        private Composite CreateBehavior_CombatMain()
        {
            var info = new EncounterInfo();

            return(_root ?? (_root =
                                 new Decorator(
                                     ctx => !_isBehaviorDone,
                                     new PrioritySelector(
                                         ctx => info.Update(),
                                         CreateBehavior_CheckQuestCompletion(),

                                         new Decorator(ctx => info.RadianceTarget != WoWPoint.Empty && CanCastPetSpell(3),
                                                       new Action(
                                                           ctx =>
            {
                CastPetSpell(3, info.RadianceTarget);
                // return RunStatus.Failure;
            })),

                                         new Decorator(ctx => info.VolleyPosition != WoWPoint.Empty && CanCastPetSpell(2),
                                                       new Action(
                                                           ctx =>
            {
                CastPetSpell(2, info.VolleyPosition);
                //return RunStatus.Failure;
            })),

                                         new Decorator(ctx => info.ChampionRallyPosition != WoWPoint.Empty && CanCastPetSpell(1),
                                                       new Action(ctx => CastPetSpell(1, info.ChampionRallyPosition)))

                                         ))));
        }
Example #4
0
        public static void AddToList(ISession session, EncounterResponse eresponse)
        {
            if ((PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.VeryRare ||
                 PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.Epic ||
                 PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.Legendary))
            {
                //access for rare pokemons
            }
            else if (PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData) < minIvPercent)
            {
                return;
            }

            if (LocationQueue.FirstOrDefault(p => p.EncounterId == eresponse.WildPokemon.EncounterId) != null)
            {
                return;
            }

            using (var newdata = new EncounterInfo())
            {
                newdata.EncounterId             = eresponse.WildPokemon.EncounterId;
                newdata.LastModifiedTimestampMs = eresponse.WildPokemon.LastModifiedTimestampMs;
                newdata.SpawnPointId            = eresponse.WildPokemon.SpawnPointId;
                newdata.TimeTillHiddenMs        = eresponse.WildPokemon.TimeTillHiddenMs;
                newdata.PokemonId = eresponse.WildPokemon.PokemonData.PokemonId;
                newdata.Iv        = PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData);
                newdata.Latitude  = eresponse.WildPokemon.Latitude;
                newdata.Longitude = eresponse.WildPokemon.Longitude;
                newdata.Move1     = eresponse.WildPokemon.PokemonData.Move1;
                newdata.Move2     = eresponse.WildPokemon.PokemonData.Move2;

                LocationQueue.Add(newdata);
            }
        }
        internal override void Process()
        {
            base.Process();
            LuaTurnSetInfo       ltsiTo   = EncounterInfo.currentTurn().toLuaTurnSetInfo();
            LuaTurnSetInfo       ltsiFrom = EncounterInfo.getTurnSetFrom(lci.parent).toLuaTurnSetInfo();
            LuaCharacterTurnInfo lcti     = EncounterInfo.getCharacterTurnFrom(lci.parent).toLuaCharacterTurnInfo();

            ltsiTo.HandleChangeSide(lcti, ltsiFrom, ltsiTo, LuaTurnSetInfo.SideTurnType.MindControl);
        }
Example #6
0
        public static List <ObsTestResult> Create(EncounterInfo encounterInfo)
        {
            var list = new List <ObsTestResult>();

            foreach (var obsInfo in encounterInfo.ObsTestResults)
            {
                list.Add(Create(obsInfo));
            }
            return(list);
        }
        public static List <ObsMemberScreening> Create(EncounterInfo encounterInfo)
        {
            var list = new List <ObsMemberScreening>();

            foreach (var obsInfo in encounterInfo.ObsMemberScreenings)
            {
                list.Add(Create(obsInfo));
            }
            return(list);
        }
Example #8
0
        public static List <ObsLinkage> Create(EncounterInfo encounterInfo)
        {
            var list = new List <ObsLinkage>();

            foreach (var obsInfo in encounterInfo.ObsLinkages)
            {
                list.Add(Create(obsInfo));
            }
            return(list);
        }
 public void Preserve(EncounterInfo encounterInfo)
 {
     try
     {
         _invalidMessageRepository.Insert(new InvalidMessage(encounterInfo.ClientId, MessageType.Encounter, JsonConvert.SerializeObject(encounterInfo), encounterInfo.PracticeId));
         _invalidMessageRepository.Save();
     }
     catch (Exception e)
     {
         Log.Error(e, "Preserve EncounterInfo error");
     }
 }
Example #10
0
 public void initEncounter(string eid = null, int stageIdx = 0)
 {
     if (eid == null)
     {
         encounter = GameStaticData.getInstance().getEncounterInfo("empty");
     }
     else
     {
         encounter = GameStaticData.getInstance().getEncounterInfo(eid);
     }
     //通过静态信息得到文字表
     this.stageIndex = stageIdx;
     this.Show();
 }
Example #11
0
 public void Update(EncounterInfo encounterInfo)
 {
     ClientId        = encounterInfo.ClientId;
     FormId          = encounterInfo.FormId;
     EncounterTypeId = encounterInfo.EncounterTypeId;
     EncounterDate   = encounterInfo.EncounterDate;
     ProviderId      = encounterInfo.ProviderId;
     DeviceId        = encounterInfo.DeviceId;
     PracticeId      = encounterInfo.PracticeId;
     Started         = encounterInfo.Started;
     Stopped         = encounterInfo.Stopped;
     IsComplete      = encounterInfo.IsComplete;
     UserId          = encounterInfo.UserId;
     IndexClientId   = encounterInfo.IndexClientId;
 }
        private static void NoSpriteSelectedControls(ActionKey key)
        {
            int normalCameraSpeed = 3;

            if (EncounterInfo.currentTurn().bIsPlayerTurnSet&& !BattleGUI.bIsRunning)
            {
                if (KeyboardMouseUtility.bMouseButtonPressed && key.actionIndentifierString.Equals(Game1.confirmString) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && EncounterInfo.currentTurn().selectedCharTurn == null && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                {
                    EncounterInfo.currentTurn().SelectCharacter();
                    KeyboardMouseUtility.bPressed = true;
                }

                if (KeyboardMouseUtility.bMouseButtonPressed && key.actionIndentifierString.Equals(Game1.cancelString) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && EncounterInfo.currentTurn().selectedCharTurn == null && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                {
                    EncounterInfo.currentTurn().RightButtonPlayerAction();
                    KeyboardMouseUtility.bPressed = true;
                }

                if (key.actionIndentifierString.Equals(Game1.tabKeyString) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                {
                    EncounterInfo.currentTurn().TabSelect();
                }
            }

            if (EncounterInfo.currentTurn().selectedCharTurn == null)
            {
                if (key.actionIndentifierString.Equals(Game1.moveUpString) || key.actionIndentifierString.Equals(Game1.cameraMoveUpString))
                {
                    GameProcessor.sceneCamera.Y += (normalCameraSpeed / GameProcessor.zoom) * SettingsFile.speedModCamera;
                }

                if (key.actionIndentifierString.Equals(Game1.moveDownString) || key.actionIndentifierString.Equals(Game1.cameraMoveDownString))
                {
                    GameProcessor.sceneCamera.Y -= (normalCameraSpeed / GameProcessor.zoom) * SettingsFile.speedModCamera;
                }

                if (key.actionIndentifierString.Equals(Game1.moveLeftString) || key.actionIndentifierString.Equals(Game1.cameraMoveLeftString))
                {
                    GameProcessor.sceneCamera.X += (normalCameraSpeed / GameProcessor.zoom) * SettingsFile.speedModCamera;
                }


                if (key.actionIndentifierString.Equals(Game1.moveRightString) || key.actionIndentifierString.Equals(Game1.cameraMoveRightString))
                {
                    GameProcessor.sceneCamera.X -= (normalCameraSpeed / GameProcessor.zoom) * SettingsFile.speedModCamera;
                }
            }
        }
Example #13
0
    public EncounterInfo getEncounterInfo(string eid)
    {
        if (encounterDic.ContainsKey(eid))
        {
            return(encounterDic[eid]);
        }
        TextAsset ta = Resources.Load("json/encounters/" + eid) as TextAsset;

        if (ta == null)
        {
            return(null);
        }
        EncounterInfo einfo = JsonConvert.DeserializeObject <EncounterInfo> (ta.text);

        encounterDic [einfo.eId] = einfo;
        return(einfo);
    }
Example #14
0
    public void changeEncounterDetail(int index)
    {
        if (index < 0 || index > grids.Length)
        {
            return;
        }
        EncounterState encounterState = PlayerData.getInstance().grids [index / GRID_WIDTH] [index % GRID_WIDTH];
        string         eid            = encounterState.eid;
        EncounterInfo  einfo          = new EncounterInfo();

        if (eid != "")
        {
            einfo = GameStaticData.getInstance().getEncounterInfo(eid);
        }
        GameManager.getInstance().showDetailPanel(einfo.desp);
        //detailText.text = eList [index].eid + "号遭遇";
    }
    private void GenerateNewEncounters()
    {
        if (GameState.hoursRemainingInCurrentStage == 24)                   // Force a basic enemy encounter as the first one.
        {
            EncounterInfo initialEncounter = new EncounterInfo(EncounterType.ENEMY);
            initialEncounter.enemyID = "TEST_DUMMY";
            activeEncounters.Add(initialEncounter);
            return;
        }
        if (GameState.hoursRemainingInCurrentStage <= 0)                    // Boss time!
        {
            activeEncounters.Clear();
            EncounterInfo bossEncounter = new EncounterInfo(EncounterType.BOSS);
            activeEncounters.Add(bossEncounter);
            return;
        }
        if (activeEncounters.Count >= 5)            // Don't generate any more if too many are still sitting there
        {
            return;
        }

        // Always generate at least 1 enemy encounter and then randomize the other generated encounters (excluding Ferryman and Boss)
        EncounterInfo guaranteedEnemyEncounter = new EncounterInfo(EncounterType.ENEMY);

        guaranteedEnemyEncounter.enemyID = "TEST_DUMMY";
        activeEncounters.Add(guaranteedEnemyEncounter);

        int encountersToCreate = UnityEngine.Random.Range(1, 4);

        for (int i = 0; i < encountersToCreate; i++)
        {
            EncounterType type         = (EncounterType)UnityEngine.Random.Range(0, 5);
            EncounterInfo newEncounter = new EncounterInfo(type);

            if (type == EncounterType.ENEMY || type == EncounterType.ELITE)
            {
                newEncounter.enemyID = "TEST_DUMMY";
            }
            else
            {
                newEncounter.storyID = "REST_STORY";
            }
            activeEncounters.Add(newEncounter);
        }
        return;
    }
 private static void GlobalControls(List <Actions.ActionKey> keys)
 {
     if (!BattleGUI.bIsRunning && !TurnSet.bSelectingArea && EncounterInfo.encounterGroups.Count != 0)
     {
         if (!KeyboardMouseUtility.AnyButtonsPressed() && EncounterInfo.currentTurn().bIsPlayerTurnSet&& KeyboardMouseUtility.bMouseButtonPressed && keys.Last().actionIndentifierString.Equals(Game1.confirmString))
         {
             BattleGUI.HandleLowerTabSelect();
         }
     }
     //if (keys[keys.Count - 1].actionIndentifierString.Equals(Game1.openMenuString) && !KeyboardMouseUtility.AnyButtonsPressed() && !BattleGUI.bIsRunning && EncounterInfo.currentTurn().bIsPlayerTurnSet)
     //{
     //    GameProcessor.bInGameMenu = true;
     //    GameMenuHandler.Start();
     //    KeyboardMouseUtility.bPressed = true;
     //    GameProcessor.EnableMenuStage();
     //}
 }
        public void Sync(EncounterInfo encounterInfo)
        {
            //Check pracitce
            var practice = _practiceRepository.Get(encounterInfo.PracticeId);

            if (null == practice)
            {
                throw new ArgumentException("Facility is not registered");
            }


            //Check client
            var client = _clientRepository.Get(encounterInfo.ClientId);

            if (null == client)
            {
                throw new ArgumentException("Client is not registered");
            }

            var encounter = _encounterRepository.Get(encounterInfo.Id);

            if (null == encounter)
            {
                encounter = Encounter.Create(encounterInfo);
                _encounterRepository.Insert(encounter);
                _encounterRepository.Save();


                var obs = Obs.Create(encounterInfo);
                _obsRepository.Insert(obs);
                _obsRepository.Save();
            }
            else
            {
                encounter.Update(encounterInfo);
                _encounterRepository.Update(encounter);
                _encounterRepository.Save();

                var obs = Obs.Create(encounterInfo);
                _obsRepository.ReplaceAll(encounter.Id, obs);
                _obsRepository.Save();
            }
        }
        public static void AddToList(ISession session, EncounterResponse eresponse)
        {
            if ((PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.VeryRare ||
                 PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.Epic ||
                 PokemonGradeHelper.GetPokemonGrade(eresponse.WildPokemon.PokemonData.PokemonId) == PokemonGrades.Legendary))
            {
                //access for rare pokemons
            }
            else if (PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData) < minIvPercent)
            {
                return;
            }

            if (LocationQueue.FirstOrDefault(p => p.EncounterId == eresponse.WildPokemon.EncounterId.ToString()) != null)
            {
                return;
            }

            using (var newdata = new EncounterInfo())
            {
                newdata.EncounterId  = eresponse.WildPokemon.EncounterId.ToString();
                newdata.Iv           = Math.Round(PokemonInfo.CalculatePokemonPerfection(eresponse.WildPokemon.PokemonData), 2);
                newdata.Latitude     = eresponse.WildPokemon.Latitude.ToString("G17", CultureInfo.InvariantCulture);
                newdata.Longitude    = eresponse.WildPokemon.Longitude.ToString("G17", CultureInfo.InvariantCulture);
                newdata.PokemonName  = eresponse.WildPokemon.PokemonData.PokemonId.ToString();
                newdata.SpawnPointId = eresponse.WildPokemon.SpawnPointId;
                newdata.Move1        = eresponse.WildPokemon.PokemonData.Move1.ToString();
                newdata.Move2        = eresponse.WildPokemon.PokemonData.Move2.ToString();


                newdata.TimeTillHiddenMs = eresponse.WildPokemon.TimeTillHiddenMs;
                if (newdata.TimeTillHiddenMs == 0)
                {
                    Random rn = new Random();
                    newdata.TimeTillHiddenMs = rn.Next(450, 481) * 1000;
                }
                newdata.Expiration = eresponse.WildPokemon.LastModifiedTimestampMs + newdata.TimeTillHiddenMs;

                LocationQueue.Add(newdata);
            }
        }
Example #19
0
        public static async Task CatchWithSnipe(ISession session, CancellationToken cancellationToken, EncounterInfo encounterId)
        {
            cancellationToken.ThrowIfCancellationRequested();

            await
            SnipePokemonTask.Snipe(session, new List <PokemonId>() { encounterId.PokemonId }, encounterId.Latitude, encounterId.Longitude, cancellationToken);
        }
Example #20
0
        public static async Task CatchFromService(ISession session, CancellationToken cancellationToken, EncounterInfo encounterId)
        {
            //default to excellent throw
            var normalizedRecticleSize = 1.95;
            //default spin
            var spinModifier = 1.0;

            //round to 2 decimals
            normalizedRecticleSize = Math.Round(normalizedRecticleSize, 2);

            CatchPokemonResponse caughtPokemonResponse;
            double lat = session.Client.CurrentLatitude;
            double lon = session.Client.CurrentLongitude;

            CatchPokemonResponse.Types.CatchStatus lastThrow = CatchPokemonResponse.Types.CatchStatus.CatchSuccess;
            CatchPokemonTask.AmountOfBerries = 0;
            do
            {
                cancellationToken.ThrowIfCancellationRequested();

                await LocationUtils.UpdatePlayerLocationWithAltitude(session,
                                                                     new GeoCoordinate(encounterId.Latitude, encounterId.Longitude, session.Client.CurrentAltitude), 0); // Speed set to 0 for random speed.

                await Task.Delay(1000, cancellationToken);

                var encounter = await session.Client.Encounter.EncounterPokemon(encounterId.EncounterId, encounterId.SpawnPointId);

                await Task.Delay(1000, cancellationToken);

                await LocationUtils.UpdatePlayerLocationWithAltitude(session,
                                                                     new GeoCoordinate(lat, lon, session.Client.CurrentAltitude), 0); // Speed set to 0 for random speed.

                float  probability = encounter.CaptureProbability.CaptureProbability_[0];
                int    cp          = encounter.WildPokemon.PokemonData.Cp;
                int    maxcp       = PokemonInfo.CalculateMaxCp(encounter.WildPokemon.PokemonData);
                double lvl         = PokemonInfo.GetLevel(encounter.WildPokemon.PokemonData);

                PokemonData encounteredPokemon;

                // Catch if it's a WildPokemon (MSniping not allowed for Incense pokemons)
                if (encounter is EncounterResponse && (encounter?.Status == EncounterResponse.Types.Status.EncounterSuccess))
                {
                    encounteredPokemon = encounter.WildPokemon?.PokemonData;
                }
                else
                {
                    return;  // No success to work with
                }
                var bestBall = await CatchPokemonTask.GetBestBall(session, encounteredPokemon, probability);

                if (((session.LogicSettings.UseBerriesOperator.ToLower().Equals("and") &&
                      encounterId.Iv >= session.LogicSettings.UseBerriesMinIv &&
                      cp >= session.LogicSettings.UseBerriesMinCp &&
                      probability < session.LogicSettings.UseBerriesBelowCatchProbability) ||
                     (session.LogicSettings.UseBerriesOperator.ToLower().Equals("or") && (
                          encounterId.Iv >= session.LogicSettings.UseBerriesMinIv ||
                          cp >= session.LogicSettings.UseBerriesMinCp ||
                          probability < session.LogicSettings.UseBerriesBelowCatchProbability))) &&
                    lastThrow != CatchPokemonResponse.Types.CatchStatus.CatchMissed) // if last throw is a miss, no double berry
                {
                    CatchPokemonTask.AmountOfBerries++;
                    if (CatchPokemonTask.AmountOfBerries <= session.LogicSettings.MaxBerriesToUsePerPokemon)
                    {
                        await CatchPokemonTask.UseBerry(session,
                                                        encounter.WildPokemon.EncounterId,
                                                        encounter.WildPokemon.SpawnPointId);
                    }
                }

                caughtPokemonResponse = await session.Client.Encounter.CatchPokemon(encounterId.EncounterId, encounterId.SpawnPointId,
                                                                                    bestBall, normalizedRecticleSize, spinModifier, true);


                Logger.Write($"({caughtPokemonResponse.Status.ToString()})  {encounterId.PokemonId.ToString()}  IV: {encounterId.Iv}%  Lvl: {lvl}  CP: ({cp}/{maxcp})", LogLevel.Service, caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess ? ConsoleColor.Green : ConsoleColor.Red);
                //CatchPokemonTask.AmountOfBerries
                await Task.Delay(1000, cancellationToken);

                lastThrow = caughtPokemonResponse.Status;
            } while (lastThrow == CatchPokemonResponse.Types.CatchStatus.CatchMissed || lastThrow == CatchPokemonResponse.Types.CatchStatus.CatchEscape);
        }
Example #21
0
        public void Snipe(Match m, bool oldMethod = false)
        {
            try
            {
                var pList = GetNecroBotProcesses();
                foreach (var t in pList)
                {
                    var username = t.GetWindowTitle();
                    if (string.IsNullOrEmpty(username))
                    {
                        continue;
                    }

                    if (!IsBotUpperThan094(t.MainModule.FileVersionInfo))
                    {
                        Console.WriteLine(Culture.GetTranslation(TranslationString.IncompatibleVersionMsg, username), Config.Error);
                        continue;
                    }
                    var           pathRemote      = GetSnipeMsPath(Path.GetDirectoryName(t.MainModule.FileName));
                    var           mSniperLocation = ReadSnipeMs(pathRemote);
                    EncounterInfo newPokemon;
                    if (!oldMethod)
                    {
                        newPokemon = new EncounterInfo()
                        {
                            PokemonId    = (short)(PokemonId)Enum.Parse(typeof(PokemonId), m.Groups[2].ToString()),
                            EncounterId  = ulong.Parse(m.Groups[4].ToString()),
                            SpawnPointId = m.Groups[6].ToString(),
                            Latitude     = double.Parse(m.Groups[8].Value, CultureInfo.InvariantCulture),
                            Longitude    = double.Parse(m.Groups[10].Value, CultureInfo.InvariantCulture),
                            Iv           = double.Parse(m.Groups[12].Value, CultureInfo.InvariantCulture),
                        };
                    }
                    else
                    {
                        var prkmnm   = PokemonId.Abra;
                        var verified = Enum.TryParse <PokemonId>(m.Groups[2].ToString(), true, out prkmnm);
                        newPokemon = new EncounterInfo()
                        {
                            PokemonId = (short)prkmnm,
                            Latitude  = double.Parse(m.Groups[4].Value, CultureInfo.InvariantCulture),
                            Longitude = double.Parse(m.Groups[6].Value, CultureInfo.InvariantCulture),
                        };
                    }

                    if (!oldMethod && mSniperLocation.FindIndex(p => p.EncounterId == newPokemon.EncounterId && p.SpawnPointId == newPokemon.SpawnPointId) == -1)
                    {
                        mSniperLocation.Add(newPokemon);
                        if (WriteSnipeMs(mSniperLocation, pathRemote))
                        {
                            Console.WriteLine(Culture.GetTranslation(TranslationString.SendingPokemonToNecroBot,
                                                                     ((PokemonId)newPokemon.PokemonId).ToString(),
                                                                     newPokemon.Latitude,
                                                                     newPokemon.Longitude,
                                                                     username), Config.Success);
                        }
                    }
                    else if (oldMethod && mSniperLocation.FindIndex(p =>
                                                                    p.PokemonId == newPokemon.PokemonId &&
                                                                    Math.Abs(p.Latitude - newPokemon.Latitude) < 15 &&
                                                                    Math.Abs(p.Longitude - newPokemon.Longitude) < 15) == -1)
                    {
                        mSniperLocation.Add(newPokemon);
                        if (WriteSnipeMs(mSniperLocation, pathRemote))
                        {
                            Console.WriteLine(Culture.GetTranslation(TranslationString.SendingPokemonToNecroBot,
                                                                     ((PokemonId)newPokemon.PokemonId).ToString(),
                                                                     newPokemon.Latitude,
                                                                     newPokemon.Longitude,
                                                                     username), Config.Success);
                        }
                    }
                    else
                    {
                        Console.WriteLine(
                            Culture.GetTranslation(TranslationString.AlreadySnipped, newPokemon.Latitude + "," + newPokemon.Longitude),
                            Config.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, Config.Error);
            }
        }
Example #22
0
        public static async Task CatchFromService(ISession session, CancellationToken cancellationToken, EncounterInfo encounterId)
        {
            //default to excellent throw
            var normalizedRecticleSize = 1.95;
            //default spin
            var spinModifier = 1.0;

            //round to 2 decimals
            normalizedRecticleSize = Math.Round(normalizedRecticleSize, 2);

            CatchPokemonResponse caughtPokemonResponse;

            do
            {
                cancellationToken.ThrowIfCancellationRequested();

                caughtPokemonResponse = await
                                        session.Client.Encounter.CatchPokemon(encounterId.EncounterId, encounterId.SpawnPointId,
                                                                              POGOProtos.Inventory.Item.ItemId.ItemPokeBall, normalizedRecticleSize, spinModifier, true);

                Logger.Write($"{caughtPokemonResponse.Status.ToString()}  {encounterId.PokemonId.ToString()}  {encounterId.Iv}%", LogLevel.Service, caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess ? ConsoleColor.Green : ConsoleColor.Red);
                await Task.Delay(1000, cancellationToken);
            } while (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed);
        }
Example #23
0
 protected EncounterNodeBase(int id, Graph parent) : base(id, parent)
 {
     this.Encounter    = ScriptableObject.CreateInstance <EncounterInfo>();
     this.Encounter.Id = Guid.NewGuid().ToString();
 }
Example #24
0
 public static void ShowWindow(EncounterInfo item)
 {
     Instance = GetWindow(typeof(TextsWindow), false, "Texts") as TextsWindow;
     Instance._encounterInfo = item;
 }
Example #25
0
 public static void ShowWindow(EncounterInfo item)
 {
     Instance = GetWindow(typeof(AllowersWindow), false, "AllowersWindow") as AllowersWindow;
     Instance._encounterInfo = item;
 }
 public void EncounterSelected(EncounterInfo encounter)
 {
     this.activeEncounters.Remove(encounter);
     GameState.hoursRemainingInCurrentStage -= encounter.timeCost;
 }
Example #27
0
 public static void ShowWindow(EncounterInfo item)
 {
     Instance = GetWindow(typeof(EventsWindow), false, "EventsWindow") as EventsWindow;
     Instance._encounterInfo = item;
 }
Example #28
0
 public static Encounter Create(EncounterInfo encounterInfo)
 {
     return(new Encounter(encounterInfo.Id, encounterInfo.ClientId, encounterInfo.FormId, encounterInfo.EncounterTypeId, encounterInfo.EncounterDate, encounterInfo.ProviderId, encounterInfo.DeviceId, encounterInfo.PracticeId, encounterInfo.Started, encounterInfo.Stopped, encounterInfo.UserId, encounterInfo.IsComplete, encounterInfo.IndexClientId));
 }
Example #29
0
        public static bool CheckAddState(this MemoryStore <EncounterInfo> val, EncounterInfo item)
        {
            try
            {
                var poid = (PokemonId)Enum.Parse(typeof(PokemonId), item.PokemonName);
                if (
                    poid == PokemonId.Pidgey ||
                    poid == PokemonId.Rattata ||
                    poid == PokemonId.Caterpie ||
                    poid == PokemonId.Weedle ||
                    poid == PokemonId.Zubat ||
                    poid == PokemonId.Poliwag ||
                    poid == PokemonId.Exeggcute ||
                    poid == PokemonId.Staryu ||
                    poid == PokemonId.Bellsprout ||
                    poid == PokemonId.Spearow ||
                    poid == PokemonId.Ponyta ||
                    poid == PokemonId.Tentacool ||
                    poid == PokemonId.Golem ||
                    poid == PokemonId.Eevee ||
                    poid == PokemonId.Magikarp ||
                    poid == PokemonId.Growlithe ||
                    poid == PokemonId.Voltorb ||
                    poid == PokemonId.Abra ||
                    poid == PokemonId.Charmander ||
                    poid == PokemonId.Meowth ||
                    poid == PokemonId.Clefairy ||
                    poid == PokemonId.Psyduck ||
                    poid == PokemonId.Tauros ||
                    poid == PokemonId.Shellder ||
                    poid == PokemonId.Machop
                    )
                {
                    return(item.Iv >= 85);
                }

                var poGrade = PokemonGradeHelper.GetPokemonGrade(poid);
                switch (poGrade)
                {
                case PokemonGrades.VeryCommon:
                    return(item.Iv >= 65);

                case PokemonGrades.Common:
                    return(item.Iv >= 45);

                case PokemonGrades.Popular:
                    return(item.Iv >= 30);

                case PokemonGrades.Rare:
                    return(item.Iv >= 25);

                default:
                    switch (poGrade)
                    {
                    case PokemonGrades.Popular:
                        return(item.Iv >= 5);

                    case PokemonGrades.Epic:
                        return(item.Iv >= 0);

                    case PokemonGrades.Legendary:
                        return(item.Iv >= 0);

                    case PokemonGrades.NONE:
                        return(item.Iv >= 0);
                    }
                    break;
                }
            }
            catch (Exception)
            {
                // ignored
            }
            return(false);
        }
Example #30
0
        public static async Task CatchFromService(ISession session, CancellationToken cancellationToken, EncounterInfo encounterId)
        {
            cancellationToken.ThrowIfCancellationRequested();

            double lat = session.Client.CurrentLatitude;
            double lon = session.Client.CurrentLongitude;

            EncounterResponse encounter;

            try
            {
                await LocationUtils.UpdatePlayerLocationWithAltitude(session,
                                                                     new GeoCoordinate(encounterId.Latitude, encounterId.Longitude, session.Client.CurrentAltitude), 0); // Speed set to 0 for random speed.

                await Task.Delay(1000, cancellationToken);

                encounter = await session.Client.Encounter.EncounterPokemon(encounterId.EncounterId, encounterId.SpawnPointId);

                await Task.Delay(1000, cancellationToken);
            }
            finally
            {
                await LocationUtils.UpdatePlayerLocationWithAltitude(session,
                                                                     new GeoCoordinate(lat, lon, session.Client.CurrentAltitude), 0); // Speed set to 0 for random speed.
            }

            PokemonData encounteredPokemon;

            // Catch if it's a WildPokemon (MSniping not allowed for Incense pokemons)
            if (encounter?.Status == EncounterResponse.Types.Status.EncounterSuccess)
            {
                encounteredPokemon = encounter.WildPokemon?.PokemonData;
            }
            else
            {
                Logger.Write($"Pokemon despawned or wrong link format!", LogLevel.Service, ConsoleColor.Gray);
                return;// No success to work with
            }

            var pokemon = new MapPokemon
            {
                EncounterId           = encounterId.EncounterId,
                ExpirationTimestampMs = encounterId.TimeTillHiddenMs,
                Latitude     = encounterId.Latitude,
                Longitude    = encounterId.Longitude,
                PokemonId    = encounteredPokemon.PokemonId,
                SpawnPointId = encounterId.SpawnPointId
            };

            await CatchPokemonTask.Execute(session, cancellationToken, encounter, pokemon, currentFortData : null, sessionAllowTransfer : true);
        }