예제 #1
0
        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);
        }
예제 #2
0
        private PieceDestinationController CreatePieceDestinationController(WinController winController)
        {
            PieceTranslationController pieceTranslationController = CreatePieceTranslationController();
            GridItemMover slotGridItemMover = SlotGridItemMover();

            return(new PieceDestinationControllerImplementation(pieceTranslationController, slotGridItemMover, winController));
        }
예제 #3
0
        private PieceDestinationController CreatePieceDestinationController()
        {
            GridItemMover pieceMover = CreatePieceMover();
            PieceTranslationController pieceTranslationController = CreatePieceTranslationController(pieceMover);

            return(new PieceDestinationControllerImplementation(pieceTranslationController, pieceMover, new StubWinController()));
        }
 public PieceDestinationControllerImplementation(PieceTranslationController pieceTranslationController)
 {
     this.pieceTranslationController = pieceTranslationController;
     NULL_TRANSLATION_CONTROLLER     = new NullPieceTranslationController();
     EMPTY_STATE   = new EmptyState();
     MOVABLE_STATE = new MovableState();
     FIXED_STATE   = new FixedState();
     SetFixed();
 }
예제 #5
0
        public void PieceTranslation()
        {
            GridItemMover pieceMover = CreatePieceMover();
            PieceTranslationController pieceTranslationController = CreatePieceTranslationController(pieceMover);
            Vector2 newPiecePosition = new Vector2(1, 2);

            pieceTranslationController.TranslateToPosition(newPiecePosition);

            Assert.AreEqual(newPiecePosition, pieceMover.Position);
        }
예제 #6
0
        public void MovingFromOneSlotToAnother()
        {
            Vector2       pieceDestinePosition = new Vector2(1, 2);
            GridItemMover pieceMover           = CreatePieceMover();
            PieceTranslationController pieceTranslationController = CreatePieceTranslationController(pieceMover);
            PieceDestinationController pieceDestinationController = CreatePieceDestinationController(pieceTranslationController, pieceMover);

            pieceDestinationController.MovePieceToDestinePosition(pieceDestinePosition);

            Assert.AreEqual(pieceDestinePosition, pieceMover.Position);
        }
 public PieceDestinationControllerImplementation(PieceTranslationController pieceTranslationController, GridItemMover slotGridItemMover, WinController winController)
 {
     this.pieceTranslationController = pieceTranslationController;
     this.slotGridItemMover          = slotGridItemMover;
     this.winController = winController;
     //this.grid = grid;
     NULL_TRANSLATION_CONTROLLER = new NullPieceTranslationController();
     EMPTY_STATE   = new EmptyState();
     MOVABLE_STATE = new MovableState();
     FIXED_STATE   = new FixedState();
     SetFixed();
 }
예제 #8
0
        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);
        }
 public void Clean()
 {
     pieceTranslationController = NULL_TRANSLATION_CONTROLLER;
     SetNeighborMovable();
 }
 public void Construct(PieceTranslationController pieceTranslationController, WinController winController)
 {
     pieceDestinationController = new PieceDestinationControllerImplementation(pieceTranslationController, gridItemComponent, winController);
 }