private void LoadNextTech()
{
//Go in order from Computer, Construction, Force Field, Planetology, Propulsion, to Weapon
if (_availableTopics.ContainsKey(TechField.COMPUTER))
{
_currentTechField = TechField.COMPUTER;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedComputerTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Computer technologies help with increasing number of factories, better scanners, improving your attack and missile defense on ships, and spying efforts benefits from higher computer tech level.");
}
}
else if (_availableTopics.ContainsKey(TechField.CONSTRUCTION))
{
_currentTechField = TechField.CONSTRUCTION;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedConstructionTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Construction technologies gives you better armor, cheaper factories, reduced pollution, and higher construction tech levels gives you more room on ships.");
}
}
else if (_availableTopics.ContainsKey(TechField.FORCE_FIELD))
{
_currentTechField = TechField.FORCE_FIELD;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedForceFieldTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Force field technologies gives you better shields, as well as planetary shields and nifty special items.");
}
}
else if (_availableTopics.ContainsKey(TechField.PLANETOLOGY))
{
_currentTechField = TechField.PLANETOLOGY;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedPlanetologyTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Planetology technologies gives you terraforming and bigger planets, cheaper pollution cleanup, as well as expanding the number of planets you can colonize. Also includes biological warfare.");
}
}
else if (_availableTopics.ContainsKey(TechField.PROPULSION))
{
_currentTechField = TechField.PROPULSION;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedPropulsionTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Propulsion technologies gives you faster engines, expanded range, and powerful special equipment.");
}
}
else if (_availableTopics.ContainsKey(TechField.WEAPON))
{
_currentTechField = TechField.WEAPON;
//Check to see if there's a researched item
bool hasDiscovered = false;
foreach (var researchedItem in _discoveredTechs)
{
if (_currentEmpire.TechnologyManager.ResearchedWeaponTechs.Contains(researchedItem))
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText(researchedItem.TechName + "\n\r\n\r" + researchedItem.TechDescription);
hasDiscovered = true;
break;
}
}
if (!hasDiscovered)
{
_techIcon = SpriteManager.GetSprite("RandomRace", _gameMain.Random);
_techDescription.SetText("Weapon technologies gives you weapons. A lot of weapons.");
}
}
if (_availableTopics[_currentTechField].Count > 0)
{
if (_availableTopics[_currentTechField].Count > _availableTechsToResearchButtons.Length)
{
_maxVisible = _availableTechsToResearchButtons.Length;
_scrollBar.SetEnabledState(true);
_scrollBar.SetAmountOfItems(_availableTopics[_currentTechField].Count);
}
else
{
_maxVisible = _availableTopics[_currentTechField].Count;
_scrollBar.SetAmountOfItems(_availableTechsToResearchButtons.Length);
_scrollBar.SetEnabledState(false);
}
RefreshTechButtons();
}
}