예제 #1
0
        private void Search7_Egg()
        {
            var rng = new TinyMT(Status);
            int min = (int)Frame_min.Value;
            int max = (int)Frame_max.Value;

            bool CheckRandomNumber(uint rn)
            {
                int sv = (int)Pokemon.getTSV(rn);

                return(sv == TSV.Value || ConsiderOtherTSV.Checked && OtherTSVList.Contains(sv));
            }

            // Advance
            for (int i = 0; i < min; i++)
            {
                rng.Next();
            }
            // Prepare
            getsetting(rng);
            // Start
            for (int i = min; i <= max; i++, RNGPool.AddNext(rng))
            {
                var result = RNGPool.GenerateEgg7() as EggResult;
                if (!(filter.CheckResult(result) || ShinyRemind.Checked && CheckRandomNumber(result.RandNum)))
                {
                    continue;
                }
                Frames.Add(new Frame(result, frame: i));
                if (Frames.Count > MAX_RESULTS_NUM)
                {
                    return;
                }
            }
        }
예제 #2
0
        private void Loadlist(string tsvstr)
        {
            OtherTSVList.Clear();
            try
            {
                string[] lines = tsvstr.Split(',');
                for (int i = 0; i < lines.Length; i++)
                {
                    if (!int.TryParse(lines[i], out int val))
                    {
                        continue;
                    }

                    if (0 > val || val > 4095)
                    {
                        continue;
                    }

                    OtherTSVList.Add(val);
                }
            }
            catch
            {
            }
        }
예제 #3
0
        private bool CheckRandomNumber(uint rn)
        {
            int sv = (int)((rn >> 16) ^ (rn & 0xFFFF)) >> 4;

            return(sv == TSV.Value || ConsiderOtherTSV.Checked && OtherTSVList.Contains(sv));
        }