Пример #1
0
 public FrameCompare(IVFilter ivBase, uint nature)
 {
     if (ivBase != null)
     {
         hpValue    = ivBase.hpValue;
         hpCompare  = ivBase.hpCompare;
         atkValue   = ivBase.atkValue;
         atkCompare = ivBase.atkCompare;
         defValue   = ivBase.defValue;
         defCompare = ivBase.defCompare;
         spaValue   = ivBase.spaValue;
         spaCompare = ivBase.spaCompare;
         spdValue   = ivBase.spdValue;
         spdCompare = ivBase.spdCompare;
         speValue   = ivBase.speValue;
         speCompare = ivBase.speCompare;
     }
     Nature = nature;
 }
Пример #2
0
 public IVFilters()
 {
     InitializeComponent();
     IVFilter = new IVFilter();
 }
Пример #3
0
        public override bool ParseInput()
        {
            // passes each of the fields into a function to parse the input
            // also validates the ranges
            // min/max frame can be larger in the input box than the limit of a uint but it's low priority to fix that
            if (!(FormsFunctions.ParseInputD(searchParams.minFrame, out minFrame) &&
                  FormsFunctions.ParseInputD(searchParams.maxFrame, out maxFrame) &&
                  minFrame <= maxFrame &&
                  FormsFunctions.ParseInputD(searchParams.minHour, out minHour) &&
                  FormsFunctions.ParseInputD(searchParams.maxHour, out maxHour) &&
                  minHour <= maxHour && maxHour <= 23 &&
                  FormsFunctions.ParseInputD(searchParams.minMinute, out minMinute) &&
                  FormsFunctions.ParseInputD(searchParams.maxMinute, out maxMinute) &&
                  minMinute <= maxMinute && maxMinute <= 59))
            {
                return(false);
            }
            //parse the id/sid defaulting to 0
            FormsFunctions.ParseInputD(searchParams.id, out id);
            FormsFunctions.ParseInputD(searchParams.sid, out sid);

            // everything from here on should always be valid input
            seedDate = searchParams.date.Value;
            bool     shiny    = searchParams.isShiny.Checked;
            bool     synch    = searchParams.isSynch.Checked;
            IVFilter ivfilter = searchParams.ivfilters.IVFilter;

            List <int> encounterSlots = null;

            if (searchParams.encounterSlot.Text != "Any" && searchParams.encounterSlot.CheckBoxItems.Count > 0)
            {
                encounterSlots = new List <int>();
                for (int i = 0; i < searchParams.encounterSlot.CheckBoxItems.Count; i++)
                {
                    if (searchParams.encounterSlot.CheckBoxItems[i].Checked)
                    {
                        // We have to subtract 1 because this custom control contains a hidden item for text display
                        encounterSlots.Add(i - 1);
                    }
                }
            }

            List <uint> natures = null;

            if (searchParams.nature.Text != "Any" && searchParams.nature.CheckBoxItems.Count > 0)
            {
                natures =
                    (from t in searchParams.nature.CheckBoxItems
                     where t.Checked
                     select(uint) ((Nature)t.ComboBoxItem).Number).ToList();
            }

            frameCompare = new FrameCompare(ivfilter, natures,
                                            (int)((ComboBoxItem)searchParams.ability.SelectedItem).Reference, shiny,
                                            synch, false, encounterSlots,
                                            (GenderFilter)(searchParams.gender.SelectedItem));

            EncounterMod currentMod = synch ? EncounterMod.Synchronize : EncounterMod.None;

            generator = new FrameGenerator
            {
                FrameType =
                    (FrameType)((ComboBoxItem)searchParams.frameType.SelectedItem).Reference,
                EncounterMod = currentMod
            };
            if (currentMod == EncounterMod.Synchronize && natures == null)
            {
                generator.EncounterMod = EncounterMod.None;
            }

            generator.SynchNature = ((Nature)searchParams.synchNature.SelectedItem).Number;

            generator.EncounterType = EncounterTypeCalc.EncounterString(searchParams.encounterType.Text);

            return(true);
        }