示例#1
0
        public static GameBoard DeserializeGameboard(string serializedGameBoard)
        {
            GameBoardData data      = UnityEngine.JsonUtility.FromJson <GameBoardData>(serializedGameBoard);
            var           gameBoard = GetGameBoard(data);

            return(gameBoard);
        }
示例#2
0
        public static GameBoard LoadBoard(string saveName)
        {
            var filePath  = saveNameToFilePath(saveName);
            var json      = File.ReadAllText(filePath);
            var gameBoard = GameBoardData.DeserializeGameboard(json);

            return(gameBoard);
        }
示例#3
0
        public static void SaveBoard(GameBoard gameBoard, string saveName)
        {
            var json     = GameBoardData.SerializeGameBoard(gameBoard);
            var filePath = saveNameToFilePath(saveName);

            Directory.CreateDirectory(Path.GetDirectoryName(filePath));
            File.WriteAllText(filePath, json);
            Debug.Log("File written to " + filePath);
        }
示例#4
0
        public void InitializeWithReplay(GameMoveHistory replayHistory)
        {
            ReplayHistory = replayHistory;
            GameBoard     = GameBoardData.GetGameBoard(replayHistory.GameBoardData);
            GameBoard.UpdateAvailableMoves();

            CurrentStepIndex = 0;
            notifyPropertiesChangedForMove();
        }
示例#5
0
        public static GameBoardData GetGameBoardData(GameBoard gameBoard)
        {
            GameBoardData data = new GameBoardData();

            foreach (var cell in gameBoard.HexCells)
            {
                data.CellPositions.Add(cell.Position);
            }
            data.StartPosition = gameBoard.StartPosition;
            return(data);
        }
示例#6
0
        public void InitializeWithBoard(GameBoard gameBoard, float timeLimitSeconds)
        {
            inputManager.DisableInput = false;
            StartTime = Time.timeSinceLevelLoad; // capture start time
            TimeLimit = timeLimitSeconds;

            GameBoard = gameBoard;
            GameBoard.UpdateAvailableMoves();

            MoveHistory.GameBoardData = GameBoardData.GetGameBoardData(gameBoard);
            MoveHistory.TimeLimit     = TimeLimit;
        }
示例#7
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");
        }
示例#8
0
 public static GameBoard GetGameBoard(GameBoardData data)
 {
     return(GameBoardGenerator.CreateFromRawPositions(data.StartPosition, data.CellPositions));
 }