public void MovePieceWhenFirstSelectedSlotIsMovableAndSecondCanReceivePiece()
        {
            //TODO: Slot tem que dar a posição dele e não da peça, pq tem slots q não possuem peça
            Vector2       pieceDestinePosition = new Vector2(1, 2);
            SlotSelection slotSelection        = CreateSlotSelection();
            GameObject    pieceObject          = CreatePieceObject();
            GridItemMover pieceMover           = pieceObject.GetComponent <GridItemMover>();
            PieceTranslationController firstPieceTranslationController = CreatePieceTranslationController(pieceObject);
            PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController(firstPieceTranslationController, pieceMover);

            firstPieceDestinationController.SetMovable();
            Positioner slotPositioner = CreateSlotPositioner(pieceDestinePosition);
            Slot       slot1          = CreateSlot(slotSelection, firstPieceDestinationController, slotPositioner);

            GameObject    pieceObject2 = CreatePieceObject();
            GridItemMover pieceMover2  = pieceObject2.GetComponent <GridItemMover>();
            PieceTranslationController secondPieceTranslationController = CreatePieceTranslationController(pieceObject2);
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController(secondPieceTranslationController, pieceMover2);

            secondPieceDestinationController.SetEmpty();
            Positioner slotPositioner2 = CreateSlotPositioner(pieceDestinePosition);
            Slot       slot2           = CreateSlot(slotSelection, secondPieceDestinationController, slotPositioner2);

            slot1.Touch();
            slot2.Touch();

            Assert.AreEqual(pieceDestinePosition, pieceMover.Position);
        }
        private void SetNeighborMovable()
        {
            List <GameObject> neighbors = slotGridItemMover.GetNeighbors();

            foreach (GameObject neighbor in neighbors)
            {
                PieceDestinationController currentNeighborPieceDestinationController = neighbor.GetComponent <PieceDestinationController>();
                currentNeighborPieceDestinationController.SetMovable();
            }
        }
        public void MovePieceWhenDestinationControlerIsMovingState()
        {
            Vector2       pieceDestinePosition = new Vector2(1, 2);
            GridItemMover pieceMover           = CreatePieceMover();
            PieceTranslationController pieceTranslationController = CreatePieceTranslationController(pieceMover);
            PieceDestinationController pieceDestinationController = CreatePieceDestinationController(pieceTranslationController, pieceMover);

            pieceDestinationController.SetMovable();

            pieceDestinationController.TakePieceToPosition(pieceDestinePosition);

            Assert.AreEqual(pieceDestinePosition, pieceMover.Position);
        }
Example #4
0
        public void SelectTwoSlotsByTouching()
        {
            SlotSelection slotSelection = CreateSlotSelection();
            PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetMovable();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetEmpty();
            Slot slot1 = CreateSlot(slotSelection, firstPieceDestinationController);
            Slot slot2 = CreateSlot(slotSelection, secondPieceDestinationController);

            slot1.Touch();
            slot2.Touch();

            Assert.AreEqual(0, slotSelection.SelectedSlotSevers.Count);
        }
Example #5
0
        public void FirstIsMovableAndSecondIsEmpty()
        {
            PieceDestinationController firstPieceDestinationController  = CreatePieceDestinationController();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetMovable();
            secondPieceDestinationController.SetEmpty();
            SlotSelectionServer slotSelectionServer = new StubSlotSelectionServer(true, false, CreatePieceObject());

            Assert.IsTrue(firstPieceDestinationController.CanMovePiece());
            Assert.IsTrue(secondPieceDestinationController.CanReceivePiece());

            firstPieceDestinationController.TakePiece();
            secondPieceDestinationController.ReceivePieceFromSlot(slotSelectionServer);

            Assert.IsTrue(secondPieceDestinationController.State is MovableState);
            Assert.IsTrue(firstPieceDestinationController.State is EmptyState);
        }
Example #6
0
        public void TouchingFirstThatCanTakePieceAndSecondThatCanReceive()
        {
            SlotSelection slotSelection = CreateSlotSelection();
            PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetMovable();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            secondPieceDestinationController.SetEmpty();
            Slot slot1 = CreateSlot(slotSelection, firstPieceDestinationController);
            Slot slot2 = CreateSlot(slotSelection, secondPieceDestinationController);

            slot1.Touch();
            slot2.Touch();

            Assert.IsTrue(firstPieceDestinationController.CanReceivePiece());
            Assert.IsTrue(secondPieceDestinationController.CanMovePiece());
            Assert.IsFalse(firstPieceDestinationController.CanMovePiece());
            Assert.IsFalse(secondPieceDestinationController.CanReceivePiece());
        }
Example #7
0
        public void SelectingTheThirdWillResetSelecting()
        {
            SlotSelection slotSelection = CreateSlotSelection();
            PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetMovable();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            secondPieceDestinationController.SetEmpty();
            PieceDestinationController thirdPieceDestinationController = CreatePieceDestinationController();

            thirdPieceDestinationController.SetMovable();
            Slot slot1 = CreateSlot(slotSelection, firstPieceDestinationController);
            Slot slot2 = CreateSlot(slotSelection, secondPieceDestinationController);
            Slot slot3 = CreateSlot(slotSelection, thirdPieceDestinationController);

            slot1.Touch();
            slot2.Touch();
            slot3.Touch();

            Assert.AreEqual(1, slotSelection.SelectedSlotSevers.Count);
            Assert.AreEqual(slot3, slotSelection.SelectedSlotSevers[0]);
        }
Example #8
0
 public void ReceivePiece(PieceDestinationController pieceDestinationController, SlotSelectionServer slotSelectionServer)
 {
     pieceDestinationController.SetMovable();
     pieceDestinationController.Piece = slotSelectionServer.Piece;
     pieceDestinationController.TurnFixedAllNeighborButOne(slotSelectionServer);
 }
 public void SetMovable()
 {
     pieceDestinationController.SetMovable();
 }