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)); }
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); }