示例#1
0
    public void AddBridgeBuilt()
    {
        _bridgesBuilt++;
        int index = 0;

        if (_myManager is AICityManager)
        {
            index = 1;
        }
        Debug.Log(index);
        GameInitializer.SetBridgeActive(index);

        if (_bridgesBuilt <= Glob.AmountOfBridgesNeededToWin && _myManager is PlayerCityManager)
        {
            GameInitializer.AddSocializerScore(30);
        }
        if (_bridgesBuilt >= Glob.AmountOfBridgesNeededToWin)
        {
            if (GameInitializer.GetNextCity(this).GetBridgesBuilt() >= Glob.AmountOfBridgesNeededToWin)
            {
                GameInitializer.GetCameraManager().MoveCameraTo(new Vector3(53, 6, 19), Glob.CameraBuildingZoomTime);
                UIHandler.ShowNotification("Through combined efforts, a bridge connecting both cities has been built. The cities are now at peace, and are even thinking of merging to improve the quality of life for everyone.");
                GameInitializer.EndGame(true);
            }
        }
    }
示例#2
0
    public void AddRelic()
    {
        _amountOfRelics++;
        UIHandler.ShowNotification("You currently have <b>" + _amountOfRelics + "/" + Glob.AmountOfRelicsNeededToWin + "</b> relics in your museum.");
        if (_amountOfRelics <= Glob.AmountOfRelicsNeededToWin && _myManager is PlayerCityManager)
        {
            GameInitializer.AddExplorerScore(6);
        }
        if (_amountOfRelics >= Glob.AmountOfRelicsNeededToWin)
        {
            CustomTile targetTile = _tileMap[0, 0];
            foreach (CustomTile tile in _tileMap)
            {
                if (tile.GetBuildingOnTile() is Digsite)
                {
                    targetTile = tile;
                    break;
                }
            }
            GameInitializer.GetCameraManager().MoveCameraTo(targetTile.transform.position + Glob.CameraBuildingOffset, Glob.CameraBuildingZoomTime); //TODO: Zoom in on a digsite
            if (_myManager is PlayerCityManager)
            {
                UIHandler.ShowNotification("Your city is swarmed with tourists, thanks to the " + _amountOfRelics + " relics you found and put in your museum. AIton's city doesn't stand a chance against this massive economical advantage.");
            }
            else
            {
                UIHandler.ShowNotification("AIton's city is swarmed with tourists, thanks to the " + _amountOfRelics + " relics he found and put in his museum. Your city doesn't stand a chance against this massive economical advantage, and thus you are forced to surrender.");
            }

            GameInitializer.EndGame(false, this);
        }
    }
示例#3
0
 public void AddMissileLaunched()
 {
     _missilesLaunched++;
     if (_myManager is PlayerCityManager)
     {
         AICityManager AICity = GameInitializer.GetNextCity(this).GetManager() as AICityManager;
         AICity.ChangeAnimosity(50, GameInitializer.GetNextCity(this));
     }
     if (_myManager is PlayerCityManager)
     {
         GameInitializer.AddKillerScore(20);
     }
     if (_missilesLaunched >= Glob.AmountOfMissilesNeededToWin)
     {
         CustomTile targetTile = _tileMap[0, 0];
         foreach (CustomTile tile in _tileMap)
         {
             if (tile.GetBuildingOnTile() is MissileSilo)
             {
                 targetTile = tile;
                 break;
             }
         }
         GameInitializer.GetCameraManager().MoveCameraTo(targetTile.transform.position + Glob.CameraBuildingOffset, Glob.CameraBuildingZoomTime); //TODO: Zoom in on a digsite
         if (_myManager is PlayerCityManager)
         {
             UIHandler.ShowNotification("AIton has surrendered! He was too afraid of your firepower and decided to run away, leaving his city and inhabitants behind.");
         }
         else
         {
             UIHandler.ShowNotification("All of your inhabitants have fled your city after all the bombardments AIton launched at you. You have no choice but to surrender.");
         }
         GameInitializer.EndGame(false, this);
     }
 }
示例#4
0
    public override void HandleTurn(City pCity)
    {
        if (!_turnEnded)
        {
            if (Time.time - _prevBuild >= Glob.AIBuildDelay)
            {
                if (_buildings == null)
                {
                    _buildings = Glob.GetBuildingPrefabs();
                }

                City targetCity = pCity;
                _prevBuild = Time.time;

                if (currentMode == CurrentMode.MISSILEAIM)
                {
                    targetCity = GameInitializer.GetNextCity(pCity);
                    launchMissile(getBestFactory(targetCity));
                    targetCity = pCity;
                    GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2, 4);
                    pCity.AddMissileLaunched();
                    return;
                }

                Move myMove = getMove(pCity, _difficulty, pCity.GetCurrentTurn() * 2);

                pCity.SetSelectedTile(myMove._tile);

                //Select the tile
                pCity.GetSelectedTile().Reset();

                GameInitializer.GetBuildingHandler().ChangeBuildingSelection(myMove._building);

                GameInitializer.GetBuildingHandler().StartBuilding();
                if (pCity.GetBudget() < 20 && currentMode != CurrentMode.MISSILEAIM)
                {
                    _turnEnded   = true;
                    _turnEndTime = Time.time;
                }
                else if (currentMode == CurrentMode.MISSILEAIM)
                {
                    targetCity = GameInitializer.GetNextCity(pCity);

                    GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2, 4);
                    targetCity.SetSelectedTile(getBestFactory(targetCity));
                    _prevBuild = Time.time + Glob.AIMissileDelay;
                }
            }
        }
        else if (Time.time - _turnEndTime >= Glob.AIEndTurnDelay)
        {
            GameInitializer.EndTurn();
            _turnEnded = false;
        }
    }
 public void SetCurrentCity(City pCity)
 {
     if (currentCity != null)
     {
         currentCity.SetCurrentMode(CityManager.CurrentMode.WAITINGFORTURN);//TODO: Fix the flashing tiles
     }
     currentCity = pCity;
     currentCity.SetCurrentMode(CityManager.CurrentMode.SELECTINGTILE);
     prevTurn     = Time.time;
     readyToBuild = false;
     GameInitializer.GetCameraManager().MoveCameraTo(pCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime);
 }
示例#6
0
    // Update is called once per frame
    void Update()
    {
        if (_tutorialActive)
        {
            if (Input.GetKeyDown(Glob.ConfirmButton))
            {
                if (_currentText == 1 && !_tileSelected || _currentText == 3 && !_tileSelected || _currentText == 6 && !_tileSelected || _currentText == 8 && !_turnEnded) //If the player needs to select the correct tile first.
                {
                    return;
                }
                else if (_currentText == 3 && _tileSelected && !_houseBuilt)
                {
                    GameInitializer.GetUIHandler().ToggleBuildPanel(true);
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(0, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(0, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                    _houseBuilt = true;
                    return;
                }
                else if (_currentText == 6 && _tileSelected && !_parkBuilt)
                {
                    GameInitializer.GetUIHandler().ToggleBuildPanel(true);
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(2, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(2, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                    _parkBuilt = true;
                    return;
                }

                _tileSelected = false;


                _currentText++;


                if (_currentText == 1)
                {
                    _myCity.HighlightTile(_tileSelectedX, _tileSelectedY, true); //TODO: Remove highlight after action.
                }
                else if (_currentText == 2)
                {
                    _myCity.HighlightTile(_tileSelectedX, _tileSelectedY, false);
                    GameInitializer.GetUIHandler().ToggleBuildPanel(true);
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(1, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(1, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                }
                else if (_currentText == 3)
                {
                    GameInitializer.GetBuildingHandler().StartBuilding();
                    GameInitializer.GetUIHandler().ToggleBuildPanel(false);

                    _myCity.HighlightTile(_houseBuiltX, _houseBuiltY, true);
                }
                else if (_currentText == 4)
                {
                    _myCity.HighlightTile(_houseBuiltX, _houseBuiltY, false);
                    GameInitializer.GetBuildingHandler().StartBuilding();
                    GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                }
                else if (_currentText == 6)
                {
                    _myCity.HighlightTile(_parkBuiltX, _parkBuiltY, true);
                }
                else if (_currentText == 7)
                {
                    _myCity.HighlightTile(_parkBuiltX, _parkBuiltY, false);
                    GameInitializer.GetBuildingHandler().StartBuilding();
                    GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                }
                else if (_currentText == 10)
                {
                    _myCity.CollectFromAllBuildings();
                    _myCity.ChangeSelectedTile(CityManager.DirectionKey.DOWN);
                    _myCity.BudgetChange(0);
                    //GameInitializer.GetUIHandler().SetResourcesBars((int)_myCity.GetBudget());

                    GameInitializer.GetCameraManager().MoveCameraTo(_myCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime);
                }
                else if (_currentText == 11)
                {
                    GameInitializer.GetUIHandler().ToggleBuildPanel(true);
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(3, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(3, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                }
                else if (_currentText == 12)
                {
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(5, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(5, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                }
                else if (_currentText == 13)
                {
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(6, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(6, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                }
                else if (_currentText == 14)
                {
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(4, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(4, false);
                    GameInitializer.GetBuildingHandler().PlaceBuilding(_myCity.GetSelectedTile());
                }
                else if (_currentText == 17)
                {
                    GameInitializer.GetBuildingHandler().DestroyPlacementBuilding();
                    GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                    //GameInitializer.SetPaused(false);
                    //_tutorialActive = false;
                }
                else if (_currentText >= 18)
                {
                    //GameInitializer.GetBuildingHandler().DestroyPlacementBuilding();
                    //GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                    GameInitializer.SetPaused(false);
                    _tutorialActive = false;
                    return;
                }

                UIHandler.ShowNotification(_allText[_currentText]);//Display the new information.
            }
            if (_currentText == 1 || _currentText == 3 && !_houseBuilt || _currentText == 6 && !_parkBuilt || _currentText == 8 && !_turnEnded)
            {
                handleInput();
            }
        }
    }
示例#7
0
    private void handleInput()
    {
        if (_currentText != 8)
        {
            if (Input.GetKeyDown(Glob.RightButton))
            {
                _myCity.ChangeSelectedTile(CityManager.DirectionKey.RIGHT);
            }
            if (Input.GetKeyDown(Glob.LeftButton))
            {
                _myCity.ChangeSelectedTile(CityManager.DirectionKey.LEFT);
            }
            if (Input.GetKeyDown(Glob.UpButton))
            {
                _myCity.ChangeSelectedTile(CityManager.DirectionKey.UP);
            }
            if (Input.GetKeyDown(Glob.DownButton))
            {
                _myCity.ChangeSelectedTile(CityManager.DirectionKey.DOWN);
            }
        }
        int[] currentTile = _myCity.GetTilePosition(_myCity.GetSelectedTile());
        if (_currentText == 1)
        {
            if (currentTile[0] == _tileSelectedX && currentTile[1] == _tileSelectedY)
            {
                _tileSelected = true;
            }
            else
            {
                _tileSelected = false;
            }
        }
        else if (_currentText == 3)
        {
            if (currentTile[0] == _houseBuiltX && currentTile[1] == _houseBuiltY)
            {
                _tileSelected = true;
            }
            else
            {
                _tileSelected = false;
            }
        }
        else if (_currentText == 6)
        {
            if (currentTile[0] == _parkBuiltX && currentTile[1] == _parkBuiltY)
            {
                _tileSelected = true;
            }
            else
            {
                _tileSelected = false;
            }
        }
        else if (_currentText == 8)
        {
            if (Input.GetKeyDown(Glob.CancelButton)) //TODO: End turn when Glob.CancelButton is held down 2 sec.
            {
                _cancelKeyPressed = Time.time;
            }
            else if (Time.time - _cancelKeyPressed >= Glob.EndTurnButtonTime && Input.GetKey(Glob.CancelButton))
            {
                GameInitializer.GetCameraManager().MoveCameraTo(GameInitializer.GetNextCity(_myCity).transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime);
                _turnEnded = true;
                _currentText++;
                UIHandler.ShowNotification(_allText[_currentText]);
            }

            /*if (Input.GetKeyDown(KeyCode.Return))//TODO: Correct button
             * {
             *  GameInitializer.GetCameraManager().MoveCameraTo(GameInitializer.GetNextCity(_myCity).transform.position + Glob.CameraOffset, Glob.CameraCitySwitchTime);
             *  _turnEnded = true;
             *  _currentText++;
             *  UIHandler.ShowNotification(_allText[_currentText]);
             * }*/
        }
    }
示例#8
0
    public override void HandleTurn(City pCity)
    {
        if (_soundHandler == null)
        {
            _soundHandler = GameInitializer.GetSoundHandler();
        }
        City targetCity = pCity;

        if (currentMode == CurrentMode.MISSILEAIM && _isFocusedOnOwnCity)
        {
            targetCity = GameInitializer.GetNextCity(targetCity);
            GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2, 4);
            _isFocusedOnOwnCity = false;
            UIHandler.ShowNotification("BOMBS AWAY!"); //TODO: Placeholder text
        }

        if (Input.anyKeyDown)
        {
            if (!_isFocusedOnOwnCity)
            {
                targetCity = GameInitializer.GetNextCity(targetCity);
            }
            if (Input.GetKeyDown(Glob.ExamineButton) && currentMode == CurrentMode.SELECTINGTILE)
            {
                if (_isFocusedOnOwnCity)
                {
                    targetCity = GameInitializer.GetNextCity(pCity);
                    GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2);
                    _isFocusedOnOwnCity = false;
                }
                else
                {
                    targetCity = pCity;
                    GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2);
                    _isFocusedOnOwnCity = true;
                }
            }
            if (currentMode == CurrentMode.SELECTINGTILE || currentMode == CurrentMode.MISSILEAIM)
            {
                if (Input.GetKeyDown(Glob.RightButton))
                {
                    targetCity.ChangeSelectedTile(DirectionKey.RIGHT);
                }
                if (Input.GetKeyDown(Glob.LeftButton))
                {
                    targetCity.ChangeSelectedTile(DirectionKey.LEFT);
                }
                if (Input.GetKeyDown(Glob.UpButton))
                {
                    targetCity.ChangeSelectedTile(DirectionKey.UP);
                }
                if (Input.GetKeyDown(Glob.DownButton))
                {
                    targetCity.ChangeSelectedTile(DirectionKey.DOWN);
                }
                if (Input.GetKeyDown(Glob.ConfirmButton))
                {
                    if (targetCity.GetSelectedTile().GetBuildingOnTile() == null)
                    {
                        if (_isFocusedOnOwnCity)
                        {
                            //_soundHandler.PlaySound(SoundHandler.Sounds.CONFIRM);
                            SetCurrentMode(CurrentMode.BUILDINGTILE);
                            targetCity.GetSelectedTile().Reset();
                            GameInitializer.GetUIHandler().ToggleBuildPanel(true);
                        }
                    }
                    else if (currentMode == CurrentMode.MISSILEAIM)
                    {
                        Debug.Log(GameInitializer.GetCameraManager().isAnimationDone());
                        if (GameInitializer.GetCameraManager().isAnimationDone())
                        {
                            Missile missile = Instantiate(Glob.GetMissile());
                            missile.SetMissileTile(targetCity.GetSelectedTile());
                            Destroy(targetCity.GetSelectedTile().GetBuildingOnTile().gameObject);
                            targetCity.GetSelectedTile().SetBuilding(null);
                            SetCurrentMode(CurrentMode.SELECTINGTILE);
                            _isFocusedOnOwnCity = true;
                            targetCity          = pCity;
                            //AddMissile with sound.
                            GameInitializer.GetCameraManager().MoveCameraTo(targetCity.transform.position + Glob.CameraCityOffset, Glob.CameraCitySwitchTime / 2, 4);
                            pCity.AddMissileLaunched();
                        }
                        else
                        {
                            Debug.Log("nawh");
                        }
                    }
                    else
                    {
                        SetCurrentMode(CurrentMode.EXAMINEMODE);
                        GameInitializer.GetUIHandler().SetExamineMode(targetCity.GetSelectedTile().GetBuildingOnTile());
                        targetCity.GetSelectedTile().Reset();
                    }
                }
            }
            if (currentMode == CurrentMode.BUILDINGTILE)
            {
                //Places a building in placement mode, can switch between buildings.
                if (GameInitializer.GetBuildingHandler().PlacementBuildingActive())
                {
                    if (Input.GetKeyDown(Glob.DownButton) || Input.GetKeyDown(Glob.RightButton))
                    {
                        //BuildingHandler should probably tell UIHandler what to do.
                        _soundHandler.PlaySound(SoundHandler.Sounds.MOVE);
                        GameInitializer.GetBuildingHandler().ChangeBuildingSelection(1);
                        GameInitializer.GetUIHandler().SetActiveBuildingImage(1);
                    }
                    if (Input.GetKeyDown(Glob.UpButton) || Input.GetKeyDown(Glob.LeftButton))
                    {
                        _soundHandler.PlaySound(SoundHandler.Sounds.MOVE);
                        GameInitializer.GetBuildingHandler().ChangeBuildingSelection(-1);
                        GameInitializer.GetUIHandler().SetActiveBuildingImage(-1);
                    }

                    if (Input.GetKeyDown(Glob.ConfirmButton))
                    {
                        if (GameInitializer.GetBuildingHandler().StartBuilding())
                        {
                            if (currentMode == CurrentMode.BUILDINGTILE)//If nothing changed the current mode
                            {
                                SetCurrentMode(CurrentMode.SELECTINGTILE);
                            }
                            GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                        }
                        else
                        {
                            _soundHandler.PlaySound(SoundHandler.Sounds.ERROR);
                        }
                    }

                    if (Input.GetKeyDown(Glob.CancelButton))
                    {
                        GameInitializer.GetBuildingHandler().DestroyPlacementBuilding();
                        SetCurrentMode(CurrentMode.SELECTINGTILE);
                        GameInitializer.GetUIHandler().ToggleBuildPanel(false);
                    }
                }
                else
                {
                    GameInitializer.GetBuildingHandler().ChangeBuildingSelection(0, false);
                    GameInitializer.GetUIHandler().SetActiveBuildingImage(0, false);
                }
            }
            if (currentMode == CurrentMode.EXAMINEMODE)
            {
                if (Input.GetKeyDown(Glob.CancelButton))
                {
                    GameInitializer.GetUIHandler().ToggleExaminePanel(false);
                    SetCurrentMode(CurrentMode.SELECTINGTILE);
                }
            }
            if (Input.GetKeyDown(Glob.CancelButton) && currentMode != CurrentMode.MISSILEAIM)
            {
                _cancelKeyPressed = Time.time;
            }
        }
        if (Time.time - _cancelKeyPressed >= Glob.EndTurnButtonTime && Input.GetKey(Glob.CancelButton))
        {
            GameInitializer.EndTurn();
            //Debug.Log(GameInitializer.GetBuildingHandler().GetCurrentCity());
            UIHandler.ShowNotification("Turn has ended");
        }
    }