示例#1
0
        public GameManager(int numberOfPlayers)
        {
            NumberOfPlayers = numberOfPlayers;

            ListOfPlayers = new ObservableCollection <Player>();
            PlayerCreator = new PlayerCreator();
            TurnsManager  = new TurnsManager();
        }
        private void Start()
        {
            gameManager  = interfaceFactory.GameManager;
            errorHandler = interfaceFactory.ErrorHandler;
            uiManager    = interfaceFactory.UIManager;
            if (gameManager == null || errorHandler == null || uiManager == null)
            {
                gameObject.SetActive(false);
            }
            else
            {
                if (componentMissing)
                {
                    errorHandler.ReportError("Tourist Manager component missing", ErrorState.restart_scene);
                }

                inventoryUI = uiManager.InventoryUI;
                if (inventoryUI == null)
                {
                    errorHandler.ReportError("Inventory UI missing", ErrorState.restart_scene);
                }
                turnsManager = gameManager.TurnsManager;
                if (turnsManager == null)
                {
                    errorHandler.ReportError("Turns Manager missing", ErrorState.restart_scene);
                }
                else
                {
                    if (turnsManager.TurnBasedObjects == null)
                    {
                        errorHandler.ReportError("Turn based objects list not initialized", ErrorState.restart_scene);
                    }
                    else
                    {
                        turnsManager.TurnBasedObjects.Add(this);
                    }
                }

                playerManager = gameManager.PlayerManager;
                if (playerManager == null)
                {
                    errorHandler.ReportError("Player Manager missing", ErrorState.restart_scene);
                }
            }
        }
        protected override void Start()
        {
            base.Start();
            if (gameObject.activeSelf)
            {
                if (componentMissing == true)
                {
                    errorHandler.ReportError("Player Character missing component", ErrorState.restart_scene);
                }
                else
                {
                    landmarkParser = globeParser.LandmarkParser;
                    if (landmarkParser == null)
                    {
                        errorHandler.ReportError("Landmark parser missing", ErrorState.restart_scene);
                    }

                    navigationUI = uiManager.NavigationUI;
                    if (navigationUI == null)
                    {
                        errorHandler.ReportError("Navigation UI missing", ErrorState.restart_scene);
                    }

                    touristManager = gameManager.TouristManager;
                    if (touristManager == null)
                    {
                        errorHandler.ReportError("Tourist Manager missing", ErrorState.restart_scene);
                    }
                    else
                    {
                        for (int i = 0; i < STARTING_NUMBER_OF_TOURISTS; i++)
                        {
                            touristManager.GenerateTourist();
                        }
                    }

                    cameraManager = gameManager.CameraManager;
                    if (cameraManager == null)
                    {
                        errorHandler.ReportError("Camera Manager missing", ErrorState.restart_scene);
                    }
                    else
                    {
                        cameraManager.OrientOnLocation(VectorLocation);
                    }

                    turnsManager = gameManager.TurnsManager;
                    if (turnsManager == null)
                    {
                        errorHandler.ReportError("Turns Manager missing", ErrorState.restart_scene);
                    }
                    else
                    {
                        turnsManager.TurnBasedObjects.Add(this);
                    }

                    Vehicle.InitVehicles();
                    ClimateCosts = Vehicle.GetClimateVehicle("Mild");
                    UpdateLocation(CellLocation.index);
                }
            }
        }