private bool AtLeastOneHigherLevelSpecial(Equipment special, float remainingSpace)
{
float currentSpecialSpaceUsage = 0;
int index = -1;
if (special != null)
{
currentSpecialSpaceUsage = special.GetSize(_techLevels, _shipDesign.Size);
index = _availableSpecialTechs.IndexOf(special.Technology);
}
float totalAvailableSpace = currentSpecialSpaceUsage + remainingSpace;
for (int i = index + 1; i < _availableSpecialTechs.Count; i++)
{
if (GetSpaceUsed(_availableSpecialTechs[i], false) <= totalAvailableSpace)
{
return true;
}
}
return false;
}