Ejemplo n.º 1
0
 // 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;
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        void Start()
        {
            board = FindObjectOfType <State> ().board;

            // UI
            currentBoardState   = board.currentState;
            currentStateId.text = currentBoardState.id;
            RefreshBuilder();

            // Other builders
            cellBuilder.Refresh();
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
    // 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);
        }
    }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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();
            }
        }