コード例 #1
0
 public uint GetWeaponQuantity(IYSTypeWeaponCategory Weapon)
 {
     if (Value2.All(x => x.Weapon != Weapon))
     {
         return(0);
     }
     return((uint)Value2.Where(x => x.Weapon == Weapon).Sum(x => x.Quantity));
 }
コード例 #2
0
        private int GetNumberOfWeapon(IYSTypeWeaponCategory Weapon)
        {
            var numberOnHardPoint = File.Contents
                                    .OfType <HRDPOINT>().ToArray()
                                    .Select(x => (int)x.GetWeaponQuantity(Weapon))
                                    .Sum();

            var numberOfSlot = 0;

            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.AIM9.ToString())
            {
                numberOfSlot = File.Contents
                               .OfType <AAMSLOT_>()
                               .Count();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.AGM.ToString())
            {
                numberOfSlot = File.Contents
                               .OfType <AGMSLOT_>()
                               .Count();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.B500.ToString())
            {
                numberOfSlot = File.Contents
                               .OfType <BOMBSLOT>()
                               .Count();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.RKT.ToString())
            {
                numberOfSlot = File.Contents
                               .OfType <RKTSLOT_>()
                               .Count();
            }

            uint numberOfInit = 0;

            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.AIM9.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITIAAM>()
                               .Select(x => x.Value)
                               .LastOrDefault();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.AGM.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITIAGM>()
                               .Select(x => x.Value)
                               .LastOrDefault();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.AIM9X.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITAAMM>()
                               .Select(x => x.Value)
                               .LastOrDefault();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.B250.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITBOMB>()
                               .Select(x => x.Value)
                               .LastOrDefault();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.B500.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITBOMB>()
                               .Select(x => x.Value)
                               .LastOrDefault();
            }
            if (Weapon.ToString() == Extensions.YSFlight.WeaponCategories.RKT.ToString())
            {
                numberOfInit = File.Contents
                               .OfType <INITRCKT>()
                               .Select(x => x.Value)
                               .LastOrDefault() / 19;
            }

            var maxQtyWeapon = new int[]
            {
                numberOnHardPoint,
                numberOfSlot,
                (int)numberOfInit
            }.Max();

            return(maxQtyWeapon);
        }