Esempio n. 1
0
 public ChangeDirrectionAfterMoveTileCompleteController(
     IMoveStepByStepController moveStepByStepController,
     IUnitGameObjectController unitGameObjectController)
 {
     _moveStepByStepController = moveStepByStepController;
     _unitGameObjectController = unitGameObjectController;
 }
Esempio n. 2
0
        public void Cancel_ShouldNotRiseMovePathComplete(int moveCompleteCalledCount)
        {
            // Arrange
            List <IntVector2> path = new List <IntVector2>();

            path.Add(new IntVector2(0, 0));
            path.Add(new IntVector2(1, 1));
            path.Add(new IntVector2(2, 1));
            path.Add(new IntVector2(3, 1));

            int actualMoveCompleteCalledCount = 0;

            Mock.Arrange(() => _occupatedPossitionsMap.IsVacantPosition(Arg.IsAny <IntVector2>()))
            .Returns(true);

            _moveStepByStepController = CreateMoveStepByStepController();
            _moveStepByStepController.MovePathComplete += () => actualMoveCompleteCalledCount++;

            // Act
            _moveStepByStepController.MoveTo(path);
            _moveStepByStepController.Cancel();
            for (int i = 0; i < moveCompleteCalledCount; i++)
            {
                _unitGameObjectController.MoveTo(new IntVector2(0, 0));
            }

            // Assert
            Assert.Equal(1, actualMoveCompleteCalledCount);
        }
Esempio n. 3
0
        public void MoveTo_AnyPath_ShouldRiseNextTileOccupied(List <IntVector2> path, IntVector2 occupiedPosition, bool NoWayToDestination)
        {
            // Arrange
            bool nextTileOccupiedCalled      = false;
            bool nexNoWayToDestinationCalled = false;

            Mock.Arrange(() => _occupatedPossitionsMap.IsVacantPosition(Arg.IsAny <IntVector2>()))
            .Returns(true);
            Mock.Arrange(() => _occupatedPossitionsMap.IsVacantPosition(occupiedPosition))
            .Returns(false);

            _moveStepByStepController = CreateMoveStepByStepController();
            _moveStepByStepController.NextTileOccupied   += i => nextTileOccupiedCalled = true;
            _moveStepByStepController.NoWayToDestination += i => nexNoWayToDestinationCalled = true;

            // Act
            _moveStepByStepController.MoveTo(path);

            // Assert
            if (NoWayToDestination)
            {
                Assert.True(nexNoWayToDestinationCalled);
            }
            else
            {
                Assert.True(nextTileOccupiedCalled);
            }
        }
Esempio n. 4
0
        public MoveConsideringOccupatedController(
            IOccupatedPossitionsMap occupatedPossitionsMap,
            IUnitGameObjectController unitGameObjectController,
            IPathGeneratorController pathGeneratorController,
            IMoveStepByStepController moveStepByStepController
            )
        {
            _occupatedPossitionsMap   = occupatedPossitionsMap;
            _moveStepByStepController = moveStepByStepController;
            _unitGameObjectController = unitGameObjectController;
            _pathGeneratorController  = pathGeneratorController;

            SubscribeOnEvent();
        }
Esempio n. 5
0
        public BaseActionController(
            IMoveStepByStepController moveStepByStepController,
            IApplyDamageController applyDamageController,
            IUnitGameObjectController unitGameObjectController,
            MoveConsideringOccupatedController moveConsideringOccupatedController,
            IPathGeneratorController pathGeneratorController)
        {
            _moveStepByStepController           = moveStepByStepController;
            _unitGameObjectController           = unitGameObjectController;
            _applyDamageController              = applyDamageController;
            _pathGeneratorController            = pathGeneratorController;
            _moveConsideringOccupatedController = moveConsideringOccupatedController;

            _pathGeneratorController.NoWayToDestination  += NoWayToDestinationHandler;
            _moveStepByStepController.NoWayToDestination += NoWayToDestinationHandler;
        }
Esempio n. 6
0
        public void MoveTo_AnyPath_ShouldRiseMovePathComplete(List <IntVector2> path, int i1, int i2)
        {
            // Arrange
            bool movePathCompleteCalled = false;

            Mock.Arrange(() => _occupatedPossitionsMap.IsVacantPosition(Arg.IsAny <IntVector2>()))
            .Returns(true);

            _moveStepByStepController = CreateMoveStepByStepController();
            _moveStepByStepController.MovePathComplete += () => movePathCompleteCalled = true;

            // Act
            _moveStepByStepController.MoveTo(path);

            // Assert
            Assert.True(movePathCompleteCalled);
        }