private IEnumerator FirstLevelStart() { yield return(new WaitForSeconds(0.5f)); FirstLevelPlayer.SetActive(true); ThisIsYouArrow.SetActive(true); ThisIsYouText.SetActive(true); yield return(new WaitForSeconds(1.5f)); FirstLevelPlayer.GetComponent <PieceController>().Obliviate(); ThisIsYouArrow.GetComponent <Animator>().SetTrigger("Switch"); ThisIsYouText.GetComponent <Animator>().SetTrigger("Switch"); yield return(new WaitForSeconds(0.5f)); ThisIsYouArrow.SetActive(false); ThisIsYouText.SetActive(false); yield return(new WaitForSeconds(0.8f)); YourHomeArrow.SetActive(true); YourHomeText.SetActive(true); List <PieceController> solutionPieces = new List <PieceController>(); ActiveGrid = _gridGenerator.GenerateGrid(3, 3); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 2)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 2)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(1, 2)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 1)))); ActiveGrid.GSolution = new GridGenerator.GridSolution(solutionPieces); PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]); yield return(new WaitForSeconds(1f)); YourHomeArrow.GetComponent <Animator>().SetTrigger("Switch"); YourHomeText.GetComponent <Animator>().SetTrigger("Switch"); yield return(new WaitForSeconds(0.5f)); YourHomeArrow.SetActive(false); YourHomeText.SetActive(false); _meteor = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.Meteor)).GetComponent <MeteorController>(); StartCoroutine(MeteorPause()); }
private void Start() { //_playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy); List <PieceController> solutionPieces = new List <PieceController>(); if (GridLevel == 1) { StartCoroutine(FirstLevelStart()); } else if (GridLevel == 2) { _firstPlay = false; ActiveGrid = _gridGenerator.GenerateGrid(4, 4); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(1, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(3, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(3, 2)))); ActiveGrid.GSolution = new GridGenerator.GridSolution(solutionPieces); PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]); StartCoroutine(MeteorPause()); _gameStarted = false; } else if (GridLevel == 3) { _firstPlay = false; ActiveGrid = _gridGenerator.GenerateGrid(5, 5); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(1, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(3, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 3)))); solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(3, 2)))); ActiveGrid.GSolution = new GridGenerator.GridSolution(solutionPieces); PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]); StartCoroutine(MeteorPause()); _gameStarted = false; } }
private void Update() { int x = (int)Input.GetAxisRaw("Horizontal"); int z = (int)Input.GetAxisRaw("Vertical"); if (Input.GetKeyDown(KeyCode.G)) { if (_meteor == null) { _meteor = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.Meteor)).GetComponent <MeteorController>(); StartCoroutine(MeteorPause()); _gameStarted = false; } return; } if (Input.GetKeyDown(KeyCode.R)) { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } if (!_gameStarted) { return; } if (Input.anyKeyDown) { if (_playerMoving) { return; } if (Mathf.Abs(x) > 0f || Mathf.Abs(z) > 0f) { if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Mirror) { PieceController nextPiece = ActiveGrid.ProcessInput(_playerPiece.GridPosition, new Vector2Int(x, z)); if (nextPiece != null) { StartCoroutine(AnimatePlayerMovement(_playerPiece, nextPiece)); } nextPiece = ActiveGrid.ProcessInput(_playerMirrorPiece.GridPosition, new Vector2Int(x * -1, z * -1)); if (nextPiece != null) { StartCoroutine(AnimatePlayerMovement(_playerMirrorPiece, nextPiece)); } } else { PieceController nextPiece = ActiveGrid.ProcessInput(_playerPiece.GridPosition, new Vector2Int(x, z)); if (nextPiece != null) { StartCoroutine(AnimatePlayerMovement(_playerPiece, nextPiece)); } } } if (Input.GetKeyDown(KeyCode.Space)) { if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Destroy) { PieceController destroyedPiece = _playerPiece.DestroyAction(); if (destroyedPiece != null) { ActiveGrid.PlayingPieces.Remove(destroyedPiece); } } else if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Normal) { _playerPiece.ConvertPieceType(PieceController.PieceType.Normal); ActiveGrid.AddPlayingPiece(_playerPiece); } else if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Mirror) { _playerPiece.ConvertPieceType(PieceController.PieceType.Normal); ActiveGrid.AddPlayingPiece(_playerPiece); _playerMirrorPiece.ConvertPieceType(PieceController.PieceType.Normal); ActiveGrid.AddPlayingPiece(_playerMirrorPiece); } _cubesUsed++; if (ActiveGrid.CheckComplete()) { PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]); StartCoroutine(SceneTransition()); _gameStarted = false; } else { _playerPiece = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.PlayerPiece), Vector3.zero, Quaternion.identity) .GetComponent <PlayerPieceController>(); if (GridLevel == 3) { if (_cubesUsed == 1) { _playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy); } } _playerPiece.PlaceOnTop(ActiveGrid.Pieces[0, 0]); } //_playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy); } } }