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); } } }
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); } }
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); } }
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); }
// 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(); } } }
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]); * }*/ } }
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"); } }