コード例 #1
0
    public void LoadLevel(LevelData levelData)
    {
        Debug.Log("[GameController] Load level");

        m_levelData = levelData;

        while (m_piecesContainer.childCount > 0)
        {
            DestroyImmediate(m_piecesContainer.GetChild(0).gameObject);
        }

        m_pieces.Clear();

        foreach (LevelData.PieceData pieceData in levelData.pieces)
        {
            PieceController piece = m_pieceFactory.Create(pieceData.type);
            piece.Rotate(pieceData.rotation);
            piece.Coordinates.Set(pieceData.beginCoordinates);
            piece.Interactable = false;

            m_pieces.Add(piece);
        }

        m_layout.CreateBoard(m_levelData);
        m_layout.Layout(m_pieces);
    }
コード例 #2
0
        public void PieceCreationCorrectly()
        {
            PieceFactory pieceFactory = CreatePieceFactory();

            GameObject pieceObject = pieceFactory.Create();

            Assert.IsNotNull(pieceObject);
        }
コード例 #3
0
        public void Creates_A_Knight()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            var piece = pieceFactory.Create(PieceType.Knight);

            Assert.IsType <Knight>(piece);
            Assert.Equal(piece.Movements.Count(), 1);
            Assert.IsType <QuandrantMovement>(piece.Movements.First());
        }
コード例 #4
0
        public void Creates_A_Pawn()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            var piece = pieceFactory.Create(PieceType.Pawn);

            Assert.IsType <Pawn>(piece);
            Assert.Equal(piece.Movements.Count(), 1);
            Assert.IsType <ForwardOnlyMovement>(piece.Movements.First());
        }
コード例 #5
0
        public void WhenPieceIsCreatedPieceDataIsRetrieved()
        {
            List <PieceData> pieceDataList   = CreatePieceDataList(3);
            PieceDataSorter  pieceDataSorter = CreatePieceDataSorter(pieceDataList);
            PieceFactory     pieceFactory    = CreatePieceFactory(pieceDataSorter);

            GameObject pieceObject = pieceFactory.Create();

            Assert.AreEqual(2, pieceDataList.Count);
        }
コード例 #6
0
        public void Creates_A_Bishop()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            var piece = pieceFactory.Create(PieceType.Bishop);

            Assert.IsType <Bishop>(piece);
            Assert.Equal(piece.Movements.Count(), 1);
            Assert.IsType <RadialDiagonalMovement>(piece.Movements.First());
            Assert.Equal(BOARD_SIZE, piece.Movements.OfType <RadialDiagonalMovement>().First().Distance);
        }
コード例 #7
0
        public void Creates_A_Rook()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            var piece = pieceFactory.Create(PieceType.Rook);

            Assert.IsType <Rook>(piece);
            Assert.Equal(piece.Movements.Count(), 1);
            Assert.IsType <RadialAdjacentMovement>(piece.Movements.First());
            Assert.Equal(BOARD_SIZE, piece.Movements.OfType <RadialAdjacentMovement>().First().Distance);
        }
コード例 #8
0
ファイル: GameController.cs プロジェクト: rutkoski/bejeweled
    /**
     * Spawn piece of specified type at row and column
     */
    private PieceController SpawnPiece(int row, int col, int pieceType)
    {
        PieceController piece = m_pieceFactory.Create(pieceType);

        piece.transform.SetParent(m_container);

        piece.transform.position = GetPiecePosition(row, col);

        SetPieceAt(row, col, piece);

        return(piece);
    }
コード例 #9
0
        public void Creates_A_Queen()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            var piece = pieceFactory.Create(PieceType.Queen);

            Assert.IsType <King>(piece);
            Assert.Equal(piece.Movements.Count(), 2);
            Assert.IsType <RadialDiagonalMovement>(piece.Movements.First());
            Assert.Equal(BOARD_SIZE, piece.Movements.OfType <RadialDiagonalMovement>().First().Distance);
            Assert.IsType <RadialAdjacentMovement>(piece.Movements.Last());
            Assert.Equal(BOARD_SIZE, piece.Movements.OfType <RadialAdjacentMovement>().Last().Distance);
        }
コード例 #10
0
        public void Throws_Exception_When_Piece_Does_Not_Exist()
        {
            var pieceFactory = new PieceFactory(BOARD_SIZE);

            Assert.Throws <ArgumentException>(() => pieceFactory.Create(0));
        }