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); }
public GameObject GetRandomEmptySlotObject() { int randomRow = Random.Range(0, slotGrid.Height); int randomColumn = Random.Range(0, slotGrid.Width); GameObject randomSlot = slotGrid.GetGridItemObjectByRowColumn(randomRow, randomColumn); PieceDestinationController pieceDestinationController = randomSlot.GetComponent <PieceDestinationController>(); GameObject.DestroyImmediate(pieceDestinationController.Piece); pieceDestinationController.SetEmpty(); pieceDestinationController.Clean(); return(randomSlot); }
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); }
public void WhenEmptyStateAllNeighBorAreMovable() { grid = CreateSlotGrid(3, 3); PieceDestinationController currentSlot = GetSlotByRowAndColumn(1, 1); PieceDestinationController leftNeighbor = GetSlotByRowAndColumn(1, 0); PieceDestinationController rightNeighbor = GetSlotByRowAndColumn(1, 2); PieceDestinationController upNeighbor = GetSlotByRowAndColumn(0, 1); PieceDestinationController bottomNeighbor = GetSlotByRowAndColumn(2, 1); currentSlot.SetEmpty(); currentSlot.Clean(); Assert.IsTrue(currentSlot.CanReceivePiece()); Assert.IsTrue(leftNeighbor.CanMovePiece()); Assert.IsTrue(upNeighbor.CanMovePiece()); Assert.IsTrue(rightNeighbor.CanMovePiece()); Assert.IsTrue(bottomNeighbor.CanMovePiece()); }
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); }
public void TouchingFirstThatCanNotTakePieceAndSecondThatCanReceive() { SlotSelection slotSelection = CreateSlotSelection(); PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController(); firstPieceDestinationController.SetEmpty(); 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.CanReceivePiece()); Assert.IsFalse(firstPieceDestinationController.CanMovePiece()); Assert.IsFalse(secondPieceDestinationController.CanMovePiece()); }
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]); }
public void SetEmpty() { pieceDestinationController.SetEmpty(); }
public void TakePieceFromSlot(PieceDestinationController pieceDestinationController, Vector2 pieceDestinePosition) { pieceDestinationController.SetEmpty(); pieceDestinationController.MovePieceToDestinePosition(pieceDestinePosition); pieceDestinationController.Clean(); }
public void TakePieceFromSlot(PieceDestinationController pieceDestinationController) { pieceDestinationController.SetEmpty(); }