private bool AtLeastOneBetterWeapon(KeyValuePair<Equipment, int> weapon, float remainingSpace)
{
float currentWeaponSpaceUsage = 0;
int index = -1;
if (weapon.Key != null)
{
currentWeaponSpaceUsage = weapon.Key.GetSize(_techLevels, _shipDesign.Size) * weapon.Value;
index = _availableWeaponTechs.IndexOf(weapon.Key.Technology);
}
float totalAvailableSpace = remainingSpace + currentWeaponSpaceUsage;
if (weapon.Key != null && !weapon.Key.UseSecondary && weapon.Key.Technology.MaximumSecondaryWeaponDamage > 0)
{
//There is a bigger version of the weapon, see if there's room for it
Equipment bigWeapon = new Equipment(weapon.Key.Technology, true);
if (bigWeapon.GetSize(_techLevels, _shipDesign.Size) <= totalAvailableSpace)
{
return true;
}
}
for (int i = index + 1; i < _availableWeaponTechs.Count; i++)
{
if (GetSpaceUsed(_availableWeaponTechs[i], false) <= totalAvailableSpace)
{
return true;
}
}
return false;
}