Beyond_Beyaan.Screens.ResearchPrompt.LoadNextTech C# (CSharp) Метод

LoadNextTech() приватный Метод

private LoadNextTech ( ) : void
Результат void
        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();
            }
        }