Exemple #1
0
        void InitializeGame()
        {
            var sceneParameters = GameBoardSceneParameters.GetParameters();

            // If null, start with a default board for testing when directly starting from GameBoard scene.
            if (sceneParameters == null)
            {
                sceneParameters = new GameBoardSceneParameters()
                {
                    GameBoard = GameBoardGenerator.CreateTriangleGame(4),
                    TimeLimit = 180f
                };
            }

            if (sceneParameters.IsReplay)
            {
                replayManager.InitializeWithReplay(sceneParameters.ReplayHistory);
                BuildBoardView(replayManager.GameBoard);
            }
            else
            {
                gameController.InitializeWithBoard(sceneParameters.GameBoard, sceneParameters.TimeLimit);
                BuildBoardView(gameController.GameBoard);
            }
        }
Exemple #2
0
 public static void SetParameters(GameBoardSceneParameters parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException(nameof(parameters));
     }
     GameBoardSceneParameters.parameters = parameters;
 }
Exemple #3
0
 public void PlayHardGame()
 {
     GameBoardSceneParameters.SetParameters(new GameBoardSceneParameters()
     {
         GameBoard = GameBoardGenerator.CreateTriangleGame(6),
         TimeLimit = (60f * 3f), // 3 minutes
     });
     SceneManager.LoadScene("GameBoard");
 }
Exemple #4
0
        public void LoadReplay(Text saveButtonText)
        {
            string          saveName = saveButtonText.text;
            GameMoveHistory replay   = ReplayManager.LoadReplay(saveName);

            GameBoardSceneParameters.SetParameters(new GameBoardSceneParameters()
            {
                GameBoard     = GameBoardData.GetGameBoard(replay.GameBoardData),
                TimeLimit     = replay.TimeLimit,
                ReplayHistory = replay,
            });
            SceneManager.LoadScene("GameBoard");
        }
Exemple #5
0
        public void LoadGame()
        {
            // Ask the user what board they want to load.
            LoadDialogView.Open(EditorBoardStorage.ListSavedBoards(), result =>
            {
                if (!result.Canceled)
                {
                    // Load the board and play it.
                    var gameBoard = EditorBoardStorage.LoadBoard(result.Name);
                    GameBoardSceneParameters.SetParameters(new GameBoardSceneParameters()
                    {
                        GameBoard = gameBoard,
                        TimeLimit = (60f * 3f), // 3 minutes
                    });

                    SceneManager.LoadScene("GameBoard");
                }
            });
        }
Exemple #6
0
        void Start()
        {
            gameController.OnGameEnded += GameController_OnGameEnded;
            IsReplay = GameBoardSceneParameters.GetParameters()?.IsReplay ?? false;
            if (IsReplay)
            {
                gameController.gameObject.SetActive(false);

                // Forward some replayManager events.
                replayManager.OnBindingUpdate += (ObservableMessage msg) => {
                    if (msg.Name == nameof(ReplayManager.CanMoveForward))
                    {
                        RaiseBindingUpdate(nameof(CanReplayForward), CanReplayForward);
                    }
                    else if (msg.Name == nameof(ReplayManager.CanMoveBackward))
                    {
                        RaiseBindingUpdate(nameof(CanReplayBackward), CanReplayBackward);
                    }
                };
            }
        }