// finalizando o colapso public void EndCollapse() { Board.BoardState state = board.GetState(); //Verificando se há empate, vitória ou não acabou o jogo StartCoroutine(ChangeScene(state)); collapse = false; }
public Board.BoardState AddState(string id, string name = "New State") { // Make sure our ID is unique while (board.boardStates.FindAll(x => x.id == id).Count > 0) { id = SaFrMo.GenerateRandomString(); } Board.BoardState newState = new Board.BoardState(id, name); board.boardStates.Add(newState); RefreshBuilder(); return(newState); }
void Start() { board = FindObjectOfType <State> ().board; // UI currentBoardState = board.currentState; currentStateId.text = currentBoardState.id; RefreshBuilder(); // Other builders cellBuilder.Refresh(); }
private void RefreshStateButton(GameObject button, Board.BoardState boardState) { Button b = button.GetComponent <Button> (); Text t = button.GetComponentInChildren <Text> (); b.onClick.AddListener(() => { currentBoardState = board.GetStateById(boardState.id); currentStateId.text = currentBoardState.id; }); t.text = boardState.id; }
// Esperando um tempo para mudar de cena se for necessário private IEnumerator ChangeScene(Board.BoardState state) { if (state == Board.BoardState.Draw) { yield return(new WaitForSeconds(delayResult)); SceneManager.LoadScene(3); } else if (state == Board.BoardState.BlackVictory) { yield return(new WaitForSeconds(delayResult)); SceneManager.LoadScene(4); } else if (state == Board.BoardState.OrangeVictory) { yield return(new WaitForSeconds(delayResult)); SceneManager.LoadScene(5); } }
public void Update(GameTime gameTime) { elapsed= (float)gameTime.ElapsedGameTime.TotalSeconds; #region Menu if (screen == ScreenState.start || screen == ScreenState.help|| screen==ScreenState.levels) { MouseState mouseState = Mouse.GetState(); if (mouseState.LeftButton == ButtonState.Pressed) { if (screen == ScreenState.start) { if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(newGameBtn)) { screen = ScreenState.game; level = 0; loadCurrLevel(); } else if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(levelsBtn)) { screen = ScreenState.levels; levelScreenTime = 0.1; } else if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(helpBtn)) { screen = ScreenState.help; } } else if (screen == ScreenState.help) { if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(helpBackBtn)) { screen = ScreenState.start; } } else if (screen == ScreenState.levels) { if (levelScreenTime > 0) Math.Max(levelScreenTime -= elapsed, 0); if (levelScreenTime > 0) return; if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(helpBackBtn)) { screen = ScreenState.start; } else { for (int i = 0; i <= endLevel; i++) { if (new Rectangle(mouseState.X, mouseState.Y, 1, 1).Intersects(levelsPicsBtn.ElementAt(i))) { level = i; screen = ScreenState.game; loadCurrLevel(); break; } } } } } } #endregion else { if (Keyboard.GetState().IsKeyDown(Keys.R)) { loadCurrLevel(); } time += elapsed; if (showHoleMsg || showPuMsg) { countSec += elapsed; } if (time >= 60 && level != 0) { loseLevel(); } if (gamestate != GameState.scored && gamestate != GameState.lose) { if (gamestate == GameState.rotationAroundTheBoard) { if (Game1.camera.CameraMoveAround()){ gamestate = GameState.normal; time=0; } else return; } // Game1.input.Update(gameTime); playerManager.Update(gameTime, gamestate); boardstate = board.update(); if (boardstate == Board.BoardState.folding1 || boardstate == Board.BoardState.folding2) { gamestate = GameState.folding; } else if (gamestate != GameState.scored && gamestate != GameState.lose) gamestate = GameState.normal; if (boardstate == Board.BoardState.preFold) prefold = true; if (Keyboard.GetState().IsKeyDown(Keys.Q)) { screen = ScreenState.start; } if (gamestate == GameState.folding) { Vector3 v = board.getAxis(); Vector3 p = board.getAxisPoint(); float a = board.getAngle(); //Tom - gets the folding points Vector3 foldPoint1, foldPoint2; board.getfoldPoints(out foldPoint1,out foldPoint2); if (prefold) { powerupManager.preFoldData(foldPoint1, foldPoint2, v, board); holeManager.preFoldData(foldPoint1, foldPoint2, v, board); acidManager.preFoldData(foldPoint1, foldPoint2, v, board); playerManager.preFoldData(foldPoint1, foldPoint2, v, board); prefold = false; } playerManager.foldData(a, board); holeManager.foldData(a, board); acidManager.foldData(a, board); powerupManager.foldData(a,board); if (first == 1) { folds++; first = 0; } } else { first = 1; powerupManager.setDrawInFold(); holeManager.setDrawInFold(); acidManager.setDrawInFold(); } } if ((gamestate == GameState.scored) && Game1.input.MouseHandler.WasLeftButtonClicked()) { folds = 0; level++; if (level <= endLevel) loadCurrLevel(); else screen = ScreenState.start; } } Game1.camera.UpdateCamera(gameTime); }
public void Update(GameTime gameTime) { if (gamestate != GameState.scored) { playerManager.Update(gameTime, gamestate); //gamestate = board.update(); boardstate = board.update(); if (boardstate == Board.BoardState.folding1 || boardstate == Board.BoardState.folding2) gamestate = GameState.folding; else if (gamestate != GameState.scored) gamestate = GameState.normal; Game1.input.Update(gameTime); Game1.camera.UpdateCamera(gameTime); if (Keyboard.GetState().IsKeyDown(Keys.R)) { folds = 0; loadCurrLevel(); } if (gamestate == GameState.folding) { Vector3 v = board.getAxis(); Vector3 p = board.getAxisPoint(); float a = board.getAngle(); // if (boardstate == Board.BoardState.folding1) playerManager.foldData(v, p, a, board); // if (boardstate == Board.BoardState.folding2) // playerManager.foldDataAfter(v, p, a, board); holeManager.foldData(v, p, a, board); powerupManager.foldData(v, p, a, board); if (first == 1) { folds++; first = 0; } } else { first = 1; powerupManager.setDrawInFold(); holeManager.setDrawInFold(); } } if ((gamestate == GameState.scored) && (Mouse.GetState().LeftButton == ButtonState.Pressed)) { gamestate = GameState.normal; folds = 0; level++; if (level <= endLevel) loadCurrLevel(); } }