public City Initialize(CityManager pManager, int pRows, int pColumns, float pOffset, Vector3 pStartPos) { _budget = Glob.StartingBudget; _myManager = pManager; Rows = pRows; Columns = pColumns; OffSetBetweenTiles = pOffset; TilePrefab = (Resources.Load(Glob.TilePrefab) as GameObject).GetComponent <CustomTile>(); transform.position = pStartPos; _signPrefab = Resources.Load(Glob.SignPrefab) as GameObject; _eventManager = GameObject.FindGameObjectWithTag("EventMenu").GetComponent <EventManager>(); _uiHandler = GameInitializer.GetUIHandler(); _soundHandler = GameInitializer.GetSoundHandler(); DrawMap(pStartPos); return(this); }
void Update() { if (GameInitializer.GetBuildingHandler().GetCurrentCity() == this && GameInitializer.GetBuildingHandler().IsReadyToBuild()) { if (!GameInitializer.GetPaused()) { if (_currentTurn > Glob.TurnAmount) { GameInitializer.EndGame(); return; } if (!_collectedThisTurn) { if ((_currentTurn - Glob.EventTurnStart) % Glob.EventTurnInterval == 0 && _myManager is PlayerCityManager && _currentTurn >= Glob.EventTurnStart) { if (!_gotEventThisTurn) { _gotEventThisTurn = true; _eventManager.EnableRandomEvent(); return; } } GameInitializer.GetUIHandler().SetTurnText(_currentTurn); UIHandler.ToggleNotificationPanel(false); CollectFromAllBuildings(); if (_myManager is PlayerCityManager) { AICityManager AICity = GameInitializer.GetNextCity(this).GetManager() as AICityManager; AICity.ChangeAnimosity(-Mathf.RoundToInt(GetHappyHouseAmount() * Glob.HappyHouseAnimosityChange), GameInitializer.GetNextCity(this)); } _collectedThisTurn = true; _gotEventThisTurn = false; _mayorOffice.UpdateHatPosition(_budget); BudgetChange(0); //_uiHandler.SetResourcesBars((int)_budget); //Just in case no buildings collected anything if (_currentTurn >= 6 && _currentTurn <= 8 && _myManager is PlayerCityManager) { switch (_currentTurn) { case 6: int scoreTurn6 = Mathf.Clamp(Glob.OptimalBudgetTurn6 - (int)_budget, 0, 10); GameInitializer.AddAchieverScore(10 - scoreTurn6); break; case 7: int scoreTurn7 = Mathf.Clamp(Glob.OptimalBudgetTurn7 - (int)_budget, 0, 20) / 2; GameInitializer.AddAchieverScore(10 - scoreTurn7); break; case 8: int scoreTurn8 = Mathf.Clamp(Glob.OptimalBudgetTurn8 - (int)_budget, 0, 40) / 4; GameInitializer.AddAchieverScore(10 - scoreTurn8); break; default: break; } } } _myManager.HandleTurn(this); } } else if (_collectedThisTurn) { _collectedThisTurn = false; _currentTurn++; } else if (GameInitializer.GetBuildingHandler().GetCurrentCity() == this && !GameInitializer.GetBuildingHandler().IsReadyToBuild()) { BudgetChange(0); // _uiHandler.SetResourcesBars((int)_budget); //Just in case no buildings collected anything } }
// 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(); } } }
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"); } }