Exemple #1
0
        private void UpdateGPM()
        {
            tbox_gpm.Text = (numUpDown_tanksize.Value / 5).ToString();
            filter        = new TankFilter(Convert.ToInt32(tbox_gpm.Text));

            checkbox_filterPower.Checked = filter.getState();
        }
        public TankAdapter(Activity activity, IEnumerable <Tank> tanks)
        {
            _items   = tanks.OrderBy(x => x.VehicleId).ThenBy(x => x.Nation).ToList();
            _context = activity;

            Filter = new TankFilter(this);
        }
        public bool MeetsFilterCriteria(TankFilter filter)
        {
            if (Tank == null)
            {
                return(false);
            }

            if (!filter.Tiers.HasFlag((Tiers)(Math.Pow(2, Tank.Tier - 1))))
            {
                return(false);
            }

            if (!filter.Nations.HasFlag(Tank.Nation))
            {
                return(false);
            }

            if (!filter.VehicleTypes.HasFlag(Tank.VehicleType))
            {
                return(false);
            }

            if (!filter.MarksOfExcellence.HasFlag((MarksOfExcellence)(Math.Pow(2, MarksOfExcellence))))
            {
                return(false);
            }
            //flag nonpremium    tank premium
            //    0                   0           1
            //    0                   1           0
            //    1                   0           0
            //    1                   1           0
            if (!filter.Premiums.HasFlag(Premiums.NonPremium) && !Tank.IsPremium)
            {
                return(false);
            }

            //flag premium    tank premium
            //    0                   0           0
            //    0                   1           1
            //    1                   0           0
            //    1                   1           0
            if (!filter.Premiums.HasFlag(Premiums.Premium) && Tank.IsPremium)
            {
                return(false);
            }

            if (!MatchTankName(filter.Text))
            {
                return(false);
            }

            return(true);
        }