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); } }
public static void SetParameters(GameBoardSceneParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } GameBoardSceneParameters.parameters = parameters; }
public void PlayHardGame() { GameBoardSceneParameters.SetParameters(new GameBoardSceneParameters() { GameBoard = GameBoardGenerator.CreateTriangleGame(6), TimeLimit = (60f * 3f), // 3 minutes }); SceneManager.LoadScene("GameBoard"); }
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"); }
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"); } }); }
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); } }; } }