public FrameCompare(IVFilter ivBase,
                            List <uint> natures,
                            int ability,
                            bool shinyOnly,
                            bool synchOnly,
                            bool dreamWorld,
                            List <int> encounterSlots,
                            GenderFilter genderFilter)
        {
            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;
            }
            Natures             = natures;
            this.ability        = ability;
            this.shinyOnly      = shinyOnly;
            this.synchOnly      = synchOnly;
            this.dreamWorld     = dreamWorld;
            this.encounterSlots = encounterSlots;

            GenderFilter = genderFilter;
        }
        public FrameCompare(
            uint compareHpA,
            uint compareAtkA,
            uint compareDefA,
            uint compareSpaA,
            uint compareSpdA,
            uint compareSpeA,
            uint compareHpB,
            uint compareAtkB,
            uint compareDefB,
            uint compareSpaB,
            uint compareSpdB,
            uint compareSpeB,
            IVFilter ivBase,
            List <uint> natures,
            int ability,
            bool shinyOnly,
            bool checkparents,
            GenderFilter genderFilter)
        {
            comparers = new List <FrameCompare>();

            this.compareHpA  = compareHpA;
            this.compareAtkA = compareAtkA;
            this.compareDefA = compareDefA;
            this.compareSpaA = compareSpaA;
            this.compareSpdA = compareSpdA;
            this.compareSpeA = compareSpeA;

            this.compareHpB  = compareHpB;
            this.compareAtkB = compareAtkB;
            this.compareDefB = compareDefB;
            this.compareSpaB = compareSpaB;
            this.compareSpdB = compareSpdB;
            this.compareSpeB = compareSpeB;

            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;
            Natures        = natures;
            this.ability   = ability;
            this.shinyOnly = shinyOnly;
            ABcheck        = checkparents;
            GenderFilter   = genderFilter;
        }
        private bool FastFilters(IVFilter filter)
        {
            // HP, Def, SpD filters must search for >=30
            // Either Attack or SpA must be >=30 as well
            if (((filter.hpValue >= 30) &&
                 (filter.hpCompare == CompareType.Equal || filter.hpCompare == CompareType.GtEqual)) &&
                ((filter.defValue >= 30) &&
                 (filter.defCompare == CompareType.Equal || filter.defCompare == CompareType.GtEqual)) &&
                ((filter.spdValue >= 30) &&
                 (filter.spdCompare == CompareType.Equal || filter.spdCompare == CompareType.GtEqual)))
            {
                // physical spreads must have Attack >=30 and flawless speed (either for standard or Trick Room)
                if ((filter.atkValue >= 30) &&
                    (filter.atkCompare == CompareType.Equal || filter.atkCompare == CompareType.GtEqual))
                {
                    if ((filter.speValue == 31) &&
                        (filter.speCompare == CompareType.Equal || filter.speCompare == CompareType.GtEqual))
                        return true;

                    // no roamers have Trick Room spreads
                    if (((filter.speValue <= 1) &&
                         (filter.speCompare == CompareType.Equal || filter.speCompare == CompareType.LtEqual)) &&
                        !((ComboBoxItem) comboBoxEncounterType.SelectedItem).Reference.Equals(EncounterType.Roamer))
                        return true;
                }

                // special spreads must have SpAttk >=30 and flawless speed (either for standard or Trick Room)
                // or, if Speed = 30 or 2 and 3, Attack must be HP_O or HP_E to allow for 70-power Hidden Power
                // spreads for roamers must have a speed of 30 or 31
                if ((filter.spaValue >= 30) &&
                    (filter.spaCompare == CompareType.Equal || filter.spaCompare == CompareType.GtEqual))
                {
                    if ((filter.speValue == 31) &&
                        (filter.speCompare == CompareType.Equal || filter.speCompare == CompareType.GtEqual))
                        return true;

                    if (((filter.speValue == 30) &&
                         (filter.speCompare == CompareType.Equal || filter.speCompare == CompareType.GtEqual)) ||
                        (!((ComboBoxItem) comboBoxEncounterType.SelectedItem).Reference.Equals(EncounterType.Roamer) &&
                         (((filter.speValue == 2) && (filter.speCompare == CompareType.Equal)) ||
                          ((filter.speValue == 3) && (filter.speCompare == CompareType.Equal)))))
                    {
                        if (((filter.atkValue >= 30) &&
                             (filter.atkCompare == CompareType.Equal || filter.atkCompare == CompareType.GtEqual)) ||
                            (filter.atkCompare == CompareType.Hidden || filter.atkCompare == CompareType.HiddenEven ||
                             filter.atkCompare == CompareType.HiddenOdd))
                        {
                            return true;
                        }
                    }

                    // no roamers have Trick Room spreads
                    if ((filter.speValue <= 1) &&
                        (filter.speCompare == CompareType.Equal || filter.speCompare == CompareType.LtEqual) &&
                        !((ComboBoxItem) comboBoxEncounterType.SelectedItem).Reference.Equals(EncounterType.Roamer))
                        return true;
                }
            }

            return false;
        }
Exemple #4
0
 public IVFilters()
 {
     InitializeComponent();
     IVFilter = new IVFilter();
 }
        public FrameCompare(IVFilter ivBase,
                            List<uint> natures,
                            int ability,
                            bool shinyOnly,
                            bool synchOnly,
                            bool dreamWorld,
                            List<int> encounterSlots,
                            GenderFilter genderFilter)
        {
            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;
            }
            Natures = natures;
            this.ability = ability;
            this.shinyOnly = shinyOnly;
            this.synchOnly = synchOnly;
            this.dreamWorld = dreamWorld;
            this.encounterSlots = encounterSlots;

            GenderFilter = genderFilter;
        }
        public FrameCompare(
            uint compareHpA,
            uint compareAtkA,
            uint compareDefA,
            uint compareSpaA,
            uint compareSpdA,
            uint compareSpeA,
            uint compareHpB,
            uint compareAtkB,
            uint compareDefB,
            uint compareSpaB,
            uint compareSpdB,
            uint compareSpeB,
            IVFilter ivBase,
            List<uint> natures,
            int ability,
            bool shinyOnly,
            bool checkparents,
            GenderFilter genderFilter)
        {
            comparers = new List<FrameCompare>();

            this.compareHpA = compareHpA;
            this.compareAtkA = compareAtkA;
            this.compareDefA = compareDefA;
            this.compareSpaA = compareSpaA;
            this.compareSpdA = compareSpdA;
            this.compareSpeA = compareSpeA;

            this.compareHpB = compareHpB;
            this.compareAtkB = compareAtkB;
            this.compareDefB = compareDefB;
            this.compareSpaB = compareSpaB;
            this.compareSpdB = compareSpdB;
            this.compareSpeB = compareSpeB;

            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;
            Natures = natures;
            this.ability = ability;
            this.shinyOnly = shinyOnly;
            ABcheck = checkparents;
            GenderFilter = genderFilter;
        }