Beyond_Beyaan.Screens.SystemInfoWindow.LoadExploredSystem C# (CSharp) Метод

LoadExploredSystem() публичный Метод

public LoadExploredSystem ( StarSystem system ) : void
system StarSystem
Результат void
        public void LoadExploredSystem(StarSystem system)
        {
            _informationText.SetText(string.Format("{0} System has been explored", system.Name));
            _informationText.MoveTo(_xPos + 200 - (int)(_informationText.GetWidth() / 2), _yPos + 50 - (int)(_informationText.GetHeight() / 2));
        }

Usage Example

        public void Update(int x, int y, float frameDeltaTime)
        {
            if (_colonizableFleetsThisTurn.Count > 0)
            {
                _colonizeScreen.MouseHover(x, y, frameDeltaTime);
            }
            if (_newResearchTopicsNeeded.Count > 0)
            {
                _researchPrompt.MouseHover(x, y, frameDeltaTime);
            }
            switch (_updateStep)
            {
            case 0:
                //Process AI's Turn here
                //  TODO: AI checks for peace treaties, and plans accordingly
                //  TODO: AI plan movement on basis of need to expand, to press attack, or to defend
                //  TODO: AI designs any new ships, done randomly every 6-15 turns
                //  TODO: AI plans production strategy and set their ratio bars
                _updateStep++;
                break;

            case 1:
                _gameMain.EmpireManager.LaunchTransports();
                //  TODO: Deduct cost for transports
                //  TODO: Production is executed
                _gameMain.EmpireManager.AccureIncome();
                _gameMain.EmpireManager.UpdatePopulationGrowth();
                _gameMain.EmpireManager.AccureResearch();
                //  TODO: Trade growth occurs
                //  TODO: New spies are added
                _gameMain.EmpireManager.UpdateEmpires();
                _updateStep++;
                break;

            case 2:
                //Diplomacy update:
                //  TODO: Love nub move towards natural state if no treaty or war
                //  TODO: Points added if there's trade, non-agg, or alliance
                //  TODO: Points subtracted for military buildup, or owning more than 1/4 of map
                //  TODO: Temp modifiers are adjusted toward 0 by 10 points each
                _updateStep++;
                break;

            case 3:
                //  TODO: New missile bases/shields added here
                _gameMain.EmpireManager.UpdateMilitary();
                _updateStep++;
                break;

            case 4:
                //  TODO: Economic adjustments
                //  TODO: Collect Tax and surplus industry spending and put into reserves
                //  TODO: New factories are built
                _updateStep++;
                break;

            case 5:
                if (!_gameMain.EmpireManager.UpdateFleetMovement(frameDeltaTime))
                {
                    //Finished moving, merge fleets then move to next step
                    _gameMain.EmpireManager.MergeIdleFleets();
                    _updateStep++;
                }
                break;

            case 6:
                // TODO: Space combat
                _updateStep++;
                break;

            case 7:
                // TODO: Spies do stuff if not hiding
                _updateStep++;
                break;

            case 8:
                if (_newResearchTopicsNeeded.Count == 0)
                {
                    _newResearchTopicsNeeded = _gameMain.EmpireManager.RollForDiscoveries(_gameMain.Random);
                    if (_newResearchTopicsNeeded.Count > 0)
                    {
                        foreach (var keyPair in _newResearchTopicsNeeded)
                        {
                            //How else to get the first key?
                            _whichEmpireFocusedOn = keyPair.Key;
                            break;
                        }

                        _researchPrompt.LoadEmpire(_whichEmpireFocusedOn, _newResearchTopicsNeeded[_whichEmpireFocusedOn]);
                        _researchPrompt.Completed += OnResearchPromptComplete;
                    }
                }
                if (_newResearchTopicsNeeded.Count == 0)
                {
                    _updateStep++;
                }
                // TODO: If computer player gets a new research item, it reevaluates its need to spy on other races here
                break;

            case 9:
                if (_exploredSystemsThisTurn.Count == 0)
                {
                    _exploredSystemsThisTurn = _gameMain.EmpireManager.CheckExploredSystems(_gameMain.Galaxy);
                    if (_exploredSystemsThisTurn.Count > 0)
                    {
                        foreach (var keyPair in _exploredSystemsThisTurn)
                        {
                            //How else to get the first key?
                            _whichEmpireFocusedOn = keyPair.Key;
                            break;
                        }
                        _systemInfoWindow.LoadExploredSystem(_exploredSystemsThisTurn[_whichEmpireFocusedOn][0]);
                        _systemView.LoadSystem(_exploredSystemsThisTurn[_whichEmpireFocusedOn][0], _whichEmpireFocusedOn);
                        _camera.CenterCamera(_exploredSystemsThisTurn[_whichEmpireFocusedOn][0].X, _exploredSystemsThisTurn[_whichEmpireFocusedOn][0].Y, 1);
                    }
                }
                // Results of planetary exploration are shown
                if (_exploredSystemsThisTurn.Count == 0)
                {
                    //Either no explored systems or finished displaying all explored systems
                    _updateStep++;
                }
                break;

            case 10:
                if (_colonizableFleetsThisTurn.Count == 0)
                {
                    _colonizableFleetsThisTurn = _gameMain.EmpireManager.CheckColonizableSystems(_gameMain.Galaxy);
                    if (_colonizableFleetsThisTurn.Count > 0)
                    {
                        foreach (var keyPair in _colonizableFleetsThisTurn)
                        {
                            _whichEmpireFocusedOn = keyPair.Key;
                            break;
                        }
                        _colonizeScreen.LoadFleetAndSystem(_colonizableFleetsThisTurn[_whichEmpireFocusedOn][0]);
                        _colonizeScreen.Completed += OnColonizeComplete;
                        _camera.CenterCamera(_colonizableFleetsThisTurn[_whichEmpireFocusedOn][0].AdjacentSystem.X, _colonizableFleetsThisTurn[_whichEmpireFocusedOn][0].AdjacentSystem.Y, 1);
                    }
                }
                if (_colonizableFleetsThisTurn.Count == 0)
                {
                    _updateStep++;
                }
                break;

            case 11:
                // TODO: resolve combat
                _gameMain.EmpireManager.LandTransports();
                // TODO: Orbital bombardments
                // TODO: Transports land and ground combat is resolved
                _updateStep++;
                break;

            case 12:
                // TODO: BNN checks for genocide, and if only one player remains, it is hailed as winner of game
                _updateStep++;
                break;

            case 13:
                // TODO: Random events
                // Add 2% to cumulative probability chance, multipled by game difficulty modifier, rolls d100 die to see if an event occurs
                // If event occurs, randomly select from those that haven't occured yet, and reset probability to 0.  Target player determined and event takes effect
                _updateStep++;
                break;

            case 14:
                // TODO: First contacts, if either race is not in contact, but overlaps one of two's colonies with their fuel range, establish contact
                _updateStep++;
                break;

            case 15:
                //  TODO: All computer-initiated diplomacy initiated
                //  TODO: High council convences if criterias are met.
                //  TODO: Messages from computer players are delivered to human player
                //  TODO: If contact is broken, notification occurs
                _updateStep++;
                break;

            case 16:
                //  TODO: Planetary production/completion messages are displayed (i.e. shield built).  Slider bars can be adjusted
                //  TODO: Production numbers for next turn are calculated
                _updateStep++;
                break;

            case 17:
                //  TODO: Any star systems within advanced space scanner range of colonies/ships is updated
                //  TODO: Turn advances by 1
                //  TODO: Recalculate players' current technology levels
                //  TODO: Autosave game
                _updateStep = 0;
                _gameMain.EmpireManager.ClearEmptyFleets();
                _gameMain.EmpireManager.SetInitialEmpireTurn();
                _gameMain.ChangeToScreen(Screen.Galaxy);
                break;
            }
        }